C#のbreakとcontinueの使い方!ループ制御の基本テクニック
生徒
「C#のループって、どうやって途中で止めたりスキップしたりできるんですか?」
先生
「C#には、ループを途中で終了させるbreak文や、ある繰り返しをスキップして次に進むcontinue文がありますよ。」
生徒
「どうやって使い分けたらいいんですか?それぞれの使い方を知りたいです。」
先生
「それでは、C#のbreakとcontinueの基本的な使い方を、わかりやすく解説していきましょう!」
1. break文とは?
break(ブレーク)文は、繰り返し処理(ループ)を途中で終了させる命令です。たとえば、条件に合った時点でループを抜けたいときに使います。
「ループの途中で処理をやめたい!」というときにはbreakが便利です。
2. break文の使い方を具体的に見てみよう
以下は、1から10までの数字を表示するループの中で、「5になったらループを終わる」例です。
for (int i = 1; i <= 10; i++)
{
if (i == 5)
{
break;
}
Console.WriteLine(i);
}
実行結果:
1
2
3
4
5になる前にbreakでループを終了しているので、5以降は表示されません。
3. continue文とは?
continue(コンティニュー)文は、ループ内の処理をスキップして、次の繰り返しに進む命令です。
「ある条件のときだけ処理を飛ばしたい!」という場合に便利です。
4. continue文の使い方を具体的に見てみよう
以下は、1から10までの数字の中で、「偶数はスキップして奇数だけ表示する」例です。
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
{
continue;
}
Console.WriteLine(i);
}
実行結果:
1
3
5
7
9
偶数の場合はcontinueでConsole.WriteLineがスキップされ、奇数だけが表示されます。
5. breakとcontinueの違いを整理しよう
ここまでの説明で、breakとcontinueの役割の違いがわかってきたと思います。
break:ループそのものを途中で終了するcontinue:ループ内の処理をスキップして次に進む
以下は、両方を使った例です。
for (int i = 1; i <= 10; i++)
{
if (i == 7)
{
break;
}
if (i % 2 == 0)
{
continue;
}
Console.WriteLine(i);
}
実行結果:
1
3
5
この例では、偶数をスキップしながら進み、i == 7でbreakしてループを終了しています。
6. 初心者がつまずきやすいポイント
プログラミング初心者の方がbreakやcontinueを使うとき、よくある間違いがいくつかあります。
- 条件を間違えて、
breakが早すぎたり遅すぎたりする continueを入れる場所によって、重要な処理がスキップされてしまう
とくに、if文の中にbreakやcontinueを入れる位置はとても大事です。実際に試しながら覚えていきましょう。
7. breakとcontinueはどのループでも使える?
はい、breakとcontinueは、for文だけでなく、while文やdo-while文など、すべてのループ構文で使えます。
以下は、while文でbreakを使った例です。
int i = 1;
while (true)
{
if (i > 5)
{
break;
}
Console.WriteLine(i);
i++;
}
実行結果:
1
2
3
4
5
while文でも、条件に合ったときにbreakで抜けることができます。
8. 現実の例で理解しよう
例えば、缶ジュースの自動販売機を考えてみましょう。
ジュースを調べていて、賞味期限が切れていたら「次に進む(continue)」、在庫がなければ「処理を終える(break)」、というふうに考えられます。
このように、breakとcontinueは現実の判断や流れをプログラムに取り入れるのに、とても役立ちます。
まとめ
C#のbreak文とcontinue文は、ループ処理において柔軟な制御を可能にする重要な機能です。繰り返しの中で「この時点でループを抜けたい」「特定の条件だけスキップしたい」といった細かな制御が求められる場面は、実際の開発現場でもよくあります。今回学んだbreakとcontinueは、そのようなニーズに対応する基本中の基本であり、初学者のうちから確実に理解しておきたい文法です。
break文は、「このループをもうやめたい」と判断したときに使い、continue文は、「今回はスキップして次の繰り返しへ進みたい」ときに使います。この2つを上手く使い分けることで、無駄な処理を省き、処理効率を高めることができます。また、読みやすく、意図が明確なコードを書くためにも、ループの中にbreakやcontinueを使う位置や条件は慎重に設計する必要があります。
以下は、for文の中でbreakとcontinueを組み合わせて使った実用的な例です。指定した条件のときだけ表示を行い、ある値に達したらループを終了する、という処理になります。
for (int i = 1; i <= 20; i++)
{
if (i % 2 == 0)
{
continue; // 偶数はスキップ
}
if (i > 11)
{
break; // 11を超えたらループ終了
}
Console.WriteLine("現在の値:" + i);
}
このコードの出力結果は以下の通りです:
現在の値:1
現在の値:3
現在の値:5
現在の値:7
現在の値:9
現在の値:11
このように、continueで偶数をスキップし、breakで12以上の値になった時点でループを止めています。こうした制御は、ユーザーの入力値チェックや、条件検索など、現実のビジネスロジックをプログラムで表現するうえで非常に役立ちます。
また、while文やdo-while文でも同様に使えることを理解することで、今後の開発でより多彩な処理に対応できるようになります。無限ループの中での脱出条件にbreakを使ったり、ログ処理やエラーチェックでcontinueを活用したりと、応用の幅も広がっていきます。
実際の開発では、たとえば商品の一覧を表示する際に、在庫切れの商品をスキップしたい(continue)が、売り切れ通知が出たら全体の処理を止めたい(break)といった場面もあるでしょう。条件に応じて処理を細かく調整できるというのは、プログラムに柔軟性を持たせるうえで欠かせないスキルです。
まとめとして、breakとcontinueは、C#のループ構文と合わせて使いこなすことで、より意図に沿った処理が実現できます。ループ制御に慣れてきたら、他の構文と組み合わせて、条件分岐や例外処理とも連携できるようになると、プログラミング全体の理解も深まるでしょう。今後もコードをたくさん書いて、試行錯誤しながら学んでいくことが大切です。
生徒
「今日はbreakとcontinueの使い方がよくわかりました!条件によってスキップしたり、終了したりできるのって便利ですね。」
先生
「そうですね。ループ処理は実際のアプリケーションでもよく登場するので、しっかり身につけておくと後で役立ちますよ。」
生徒
「偶数だけスキップして奇数を表示するとか、在庫がなくなったらループを止めるとか、いろんな場面がイメージできるようになりました!」
先生
「その調子です。プログラムは現実の処理をどうやって再現するかが大事ですから、実例を想像するのはとてもいい勉強法です。」
生徒
「コードも読みやすくなるし、エラーも減らせそうですね。これからはbreakとcontinueを上手に使っていきたいです!」
先生
「ぜひいろいろなループの中で試してみてください。慣れてくると、複雑な処理もスムーズに書けるようになりますよ。」