为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

陈纪堂 2017-05-05 22:25:58
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 跳出就真的成“死循环”了。

查看完整回答
2 反对 回复 2017-05-05
  • 1 回答
  • 1 关注
  • 2396 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信