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);
}
1 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
第 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 跳出就真的成“死循环”了。
添加回答
举报
0/150
提交
取消