Java入門⑩ break と continue ── くり返しを、抜ける・飛ばす
Java入門⑩ break と continue ── くり返しを、抜ける・飛ばす
前回まで、for文・while文という「くり返し」をやってきました。
今回は、そのくり返しを途中でコントロールする2つの命令、break(ブレイク)とcontinue(コンティニュー)です。
break は「くり返しを途中でやめる」、continue は「今回だけ飛ばして次へ」です。
なぜ、これが必要なのか
くり返しは便利ですが、ときどき「途中で抜けたい」「この回だけスキップしたい」ことがあります。
「探していて、目当てのものが見つかったら、もう探さなくていい」
「1から10まで処理するけど、偶数は飛ばしたい」
こういう細かいコントロールをするのが、break と continue です。
break ── 途中でやめる
break は、くり返しをその場で打ち切って、ループから抜け出します。
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
System.out.println(i);
}
実行すると、1・2・3・4 だけ表示されます。
i が5になったとき、if (i == 5) が true になり、break が実行される。その瞬間、くり返し全体が終了。だから5以降は表示されません。
break、実は第7回のswitch文でも出てきましたね。あのときと同じ「ここで抜ける」という意味です。
break が活きる場面
break が本当に役立つのは、「目当てのものが見つかったら、もう探さなくていい」というときです。
for (int i = 1; i <= 100; i++) {
if (i * i > 50) {
System.out.println(i + " で初めて2乗が50を超えました");
break;
}
}
2乗が50を超える最初の数を探しています。見つかった瞬間に break で抜けるので、それ以降の無駄なくり返しをしません。「見つけたら、即終了」。効率のいい書き方です。
continue ── 今回だけ飛ばす
continue は、break と違います。くり返しをやめるのではなく、今回の処理だけスキップして、次のくり返しに進みます。
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
実行すると、奇数だけ(1・3・5・7・9)が表示されます。
i % 2 == 0 は「2で割った余りが0」、つまり偶数という条件です(% は第4回の「余り」ですね)。偶数のとき continue が実行され、その回の表示をスキップして次へ。だから奇数だけが残りました。
break と continue の違い
ここがいちばん大事なところです。
- break … くり返しを 完全にやめる。ループから抜け出す
- continue … 今回だけ 飛ばして、くり返しは続ける
たとえるなら、break は「もう帰る」、continue は「今回はパスして、次へ」。
迷ったら、こう考えてください。
「もう用は済んだ。やめる」→ break
「今回はいらないけど、まだ続ける」→ continue
つまずきポイント
学生がよく混同するのが、この2つの違いです。「途中で抜けたいのに continue を使ってしまう」「1回飛ばしたいだけなのに break を使ってしまう」。
区別はシンプルです。ループ自体を終わらせるのが break、続けるのが continue。「帰る」のか「パスする」のか。ここさえ押さえれば、使い分けで困りません。
まとめ
break と continue は、くり返しをコントロールする命令。
- break … くり返しを途中でやめて、抜け出す
- continue … 今回だけ飛ばして、次のくり返しへ
「見つかったら終わり」なら break、「この回だけスキップ」なら continue。
これで、くり返し(for・while・break・continue)がひととおり揃いました。次回からは、たくさんのデータをまとめて扱う 配列 に進みます。

