猿问

谁能解释下这段Java代码,没见过啊尤其是tp:for(;;)

public class Demo {

    public static void main(String[] args) {
        int i = 0,j = 5;
        tp:for(;;){
            i++;
            for(;;){
                if(i>j++)
                    break tp;
                
            }
        }
        
        System.out.println("i="+i+",j="+j);
    }


陈纪堂
浏览 2397回答 1
1回答

onemoo

第 5 行的 tp:for(;;) 其实是两部分:tp: 是个 label。 后面那个 for(;;) 就是普通的 for 语句,只不过括号中三个控制条件部分都是空的,也就是这个 for 循环是个死循环。 另外,第 7 行的 for 语句同样是死循环。第 9 行的 break tp; 及前面配套的 tp: ,这是 Java 的 labeled break 语句,主要用于跳出多层循环体。具体用法是这样的:label 需要放在你想要跳出的循环语句的前面,后跟一个冒号。这个例子中 tp 就是 label,它标记在了第 5 行 for 语句的前面。然后在代码中需要跳出循环的地方写上 break label名;,执行到这里时会跳出前面被标记的循环。注意:虽然 label 被写在在第 5 行 for 语句前,但第 9 行 break 语句跳出后并不是回到 label 这里执行第 5 行这个 for 语句,而是会跳过这个 for 语句(也就是继续执行第 12 行之后的代码)这代码中的两层 for 循环都是死循环,如果没有 break 跳出就真的成“死循环”了。
随时随地看视频慕课网APP

相关分类

Java
我要回答