有人可以告诉我为什么编译器说以下代码中缺少标签:
情况1:
错误:标签丢失
void crazyLoop() {
int c = 0;
JACK: while (c < 8) {
JILL: System.out.println(c);
if (c > 3)
break JILL;
else
c++;
}
}
这JILL
是可以到达的,因为我已经声明为JILL
insideJACK
而不是 outside JACK
。
案例2:
错误: c 无法解析。如果我这样做:
void crazyLoop() {
JILL:int c = 0;
JACK: while (c < 8) {
System.out.println(c);
if (c > 3)
break JILL;
else
c++;
}
}
编译器说c
无法解析为变量。
有人可以解释发生了什么吗?