ラベル付き break
出力はどれか。
public class Main {
public static void main(String[] args) {
outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i * j == 2) break outer;
System.out.print(i + "" + j + " ");
}
}
}
}
- A
00 01 02 10 11 - B
00 01 02 10 11 20 - C
00 01 02 - D
00 01 02 10 11 12 20 21 22
正解と解説を見る
正解: A
- A: i=1, j=2 で
i * j == 2になり、break outer で外側のループごと終わります。 - B: i=1, j=2 で外側ごと抜けるので、i=2 には進みません。
- C: i=0 の間は
i * jが常に 0 なので、i=1 にも進みます。 - D: i * j が 2 になった時点で全体が終わります。
ポイント
break outerは外側のループごと抜けます。i=1, j=2 で1 * 2 == 2となり、そこで終了します。