为什么这段代码可以在Java中编译?

3

我能看到下面的代码在Java中编译通过,但不明白可能的原因是什么?

public class test {


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

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

这段 Java 代码没有任何问题。这里的 abc 是一个标签。 - suren
2个回答

4

您在main中的这一行是一个标记语句

这些标记语句孤立起来没有太大用处,但它们可以与breakcontinue语句一起使用。


我想补充一下,虽然它们可以被使用,但是不应该被使用 ;) - AxelH

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.
             }
         }
     }

现在我记得在使用goto语句。但由于它不再使用,已经忘记了。感谢大家的回答。非常感谢! - pd30

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接