以下のコードでラベルが欠落しているとコンパイラが言う理由を誰か教えてください:
ケース1:
エラー:ラベルがありません
void crazyLoop() {
int c = 0;
JACK: while (c < 8) {
JILL: System.out.println(c);
if (c > 3)
break JILL;
else
c++;
}
}
ここでは、外部ではなく内部でJILL
宣言しているため、到達可能です。JILL
JACK
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
、変数に解決できないと言います。
誰かが何が起こっているのか説明してもらえますか?