Java 代码中的“loop:”。这是什么,为什么编译?

2022-08-31 08:56:32

这段代码只是让我盯着屏幕看了几分钟:

loop:
for (;;) {
    // ...
}

(137路在这里)

我以前从未见过这个,我不知道Java有一个“循环”关键字(NetBeans甚至没有像关键字一样着色),而且它确实可以与JDK 6编译良好。

这是什么解释?


答案 1

它不是一个,它是一个.keywordlabel

用法:

    label1:
    for (; ; ) {
        label2:
        for (; ; ) {
            if (condition1) {
                // break outer loop
                break label1;
            }
            if (condition2) {
                // break inner loop
                break label2;
            }
            if (condition3) {
                // break inner loop
                break;
            }
        }
    }

文档


答案 2

正如其他海报所说,这是一个标签,而不是一个关键词。使用标签可以执行如下操作:

outer: for(;;) {
   inner: for(;;) {
     break outer;
   }
}

这允许断开外部环路。

链接到文档


推荐