0

我正在做一个遗留项目,我发现了类似的东西:

test:{
        if(1 == 1) {
            System.out.println("Oups");
            break test;
        }
        System.out.println("Hello World");
    }

我用谷歌搜索,但似乎没有什么与这种结构相匹配。

当然,这部分代码编译运行... ????

有人知道那是做什么的吗?

4

4 回答 4

0

test:称为标签。就像在循环中一样,break跳转到块的末尾。标签用于定义中断跳转到的位置。请注意,范围的开头并不重要,前提是结尾是您需要的地方,因此您实际上是在标记结尾而不是要中断的代码的开头。

虽然它有效,但标签通常与if语句太混淆,部分原因是它们很少使用,所以我会避免它们。如果你可以用标签写一些东西,你通常可以不使用方法来写它,或者在这种情况下使用一个elsetoif

如果可以的话,即使使用带有循环的标签也应该避免。

自 1.0 版以来,这一直是 Java 的一部分,并且在 Java 10 中仍受支持。

于 2018-02-28T10:19:50.473 回答
0

它被称为label

它用于break做与goto其他语言类似的事情。

您可以在此处找到更多详细信息

于 2018-02-28T10:20:33.793 回答
0

跳出标签(教程):

label: for (int i = 0; i < x; i++) {
    for (int j = 0; j < i; j++) {
        if (something(i, j)) break label; // jumps out of the i loop
    }
} 
// i.e. jumps to here
于 2018-02-28T10:20:38.467 回答
-2

正如评论已经说过的,这是一个 break 可以跳到/跳出的标签。更多信息在这里:https ://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

于 2018-02-28T10:19:43.077 回答