为什么这段代码在java中编译?

时间:2016-11-10 07:22:40

标签: java

我可以看到下面的代码用Java编译,但无法理解可能是什么原因?

public class test {


    @SuppressWarnings("unused")
    public static void main(String[] args) {

        abc:System.out.println(9);
    }
}

2 个答案:

答案 0 :(得分:4)

main中的行是labelled statement

这些标签在隔离方面没有多大用处,但它们可以与breakcontinue语句一起使用。

答案 1 :(得分:2)

嗯...因为它是有效的Java代码。

如果您询问abc:System.out.println(9); abc只是标签声明的标签,这在Java中是合法的,但是如果您必须使用它,则意味着您的代码出错了。

它们最常用于标记嵌套循环:

abc: for (int i = 0; i < 5; i++) {
         for (int j = i; j < 10; j ++) {
             if (j == 4) {
                break abc; //breaks the outer loop.
             }
         }
     }