我知道您可以通过以下方式使用循环标签:
foo:
while (something) {
// ...
while (somethingElse) {
if (yetAnotherCondition) {
break foo;
}
}
}
但是,我注意到一个循环有两个标签不是语法错误。一个例子(我知道标签是不必要的,循环只执行一次,但只是为了在一个循环中显示两个标签的容差):
foo:
bar:
for (int i = 0; i < 5; i++) {
break foo;
}
等效运行
foo:
bar:
for (int i = 0; i < 5; i++) {
break bar;
}
有人知道什么时候只需一个循环就需要两个标签吗?我在运行时遇到了编译错误,但没有得到。
答案 0 :(得分:1)
让我们假设您有2种不同的结果需要打破不同的代码。在测试期间,您最终可能会在两者之间注释掉代码。这样它仍然有效而不是破碎。