Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在一个循环上有两个标签_Java_Loops - Fatal编程技术网

Java在一个循环上有两个标签

Java在一个循环上有两个标签,java,loops,Java,Loops,我知道可以通过以下方式使用循环标签: foo: while (something) { // ... while (somethingElse) { if (yetAnotherCondition) { break foo; } } } 然而,我注意到一个循环有两个标签并不是一个语法错误。例如(我知道标签是不必要的,循环只执行一次,但只是为了显示一个循环上两个标签的余量): foo: 酒吧: 对于(int i=0;

我知道可以通过以下方式使用循环标签:

foo:
while (something) {
    // ...
    while (somethingElse) {
        if (yetAnotherCondition) {
            break foo;
        }
    }
}
然而,我注意到一个循环有两个标签并不是一个语法错误。例如(我知道标签是不必要的,循环只执行一次,但只是为了显示一个循环上两个标签的余量):

foo:
酒吧:
对于(int i=0;i<5;i++){
破福;
}
相当于

foo:
bar:
for (int i = 0; i < 5; i++) {
    break bar;
}
foo:
酒吧:
对于(int i=0;i<5;i++){
断杆;
}

有人知道什么时候一个循环只需要两个标签吗?运行此程序时,我预期会出现编译错误,但没有出现编译错误。

假设您有两种不同的结果,需要转换为不同的代码。在测试过程中,您可能会注释掉中间的代码。这样,它仍然可以工作,而不是中断。

标签是任意的,并且(在
switch
语句之外)它们实际上是用于嵌套循环中的。您不需要它,但它们从来不会拒绝它,因此编译器接受它。
foo:
bar:
for (int i = 0; i < 5; i++) {
    break bar;
}