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

