C#ループにおけるbreak
とcontinue
の違いを理解する
C#でループに取り組む際、2つの強力な制御ステートメントに遭遇します:break
とcontinue
。どちらもコードのフローを劇的に変更することができますが、各ステートメントの動作を理解することは、効果的で効率的なプログラムを書くために重要です。この投稿では、break
とcontinue
の違いを深く掘り下げ、それぞれの使用法を示すための役立つ例を紹介します。
ループ制御の基本
C#のループは、特定の条件の下でコードのブロックを繰り返し実行することを可能にします。for
、foreach
、while
、およびdo...while
など、さまざまなタイプのループがあります。break
やcontinue
などの制御ステートメントは、これらのループにおいてどのように、またはいつループを終了したり、繰り返しをスキップしたりするかを指定するのに役立ちます。
break
は何をするのか?
break
ステートメントはループを完全に終了させるために使用されます。break
ステートメントに遭遇すると、プログラムは即座にループを終了し、制御はループの後に続く次のステートメントに移ります。
break
の実行例:
for (int i = 0; i < 10; i++) {
if (i == 0) {
break; // これは最初のイテレーションでループを終了します
}
DoSomeThingWith(i);
}
説明:
- この例では、ループは
0
から9
まで実行するように設計されています。 - しかし、
i
が0
に等しくなると、break
ステートメントが実行されます。 - 結果として、
DoSomeThingWith(i)
は全く実行されません。
continue
を理解する
対照的に、continue
ステートメントは現在のイテレーションをスキップするために用いられます。continue
ステートメントに到達すると、その特定のイテレーション内の残りのコードは実行されず、制御はループの次のイテレーションに移ります。
continue
の実行例:
for (int i = 0; i < 10; i++) {
if (i == 0) {
continue; // これはi = 0の場合のループの残りをスキップします
}
DoSomeThingWith(i);
}
説明:
- このループでは、
i
が0
に等しくなると、continue
ステートメントがトリガーされます。 - これにより、
DoSomeThingWith(i)
の行はスキップされ、ループはi = 1
に進むことができます。 - 結果として、
DoSomeThingWith(i)
は、1
から9
までのi
の値について実行されます。
一目でわかる主な違い
break
とcontinue
の違いは基本的ですが、ループ制御において異なる役割を果たします:
-
break
ステートメント:- ループを完全に終了させます。
- 一度呼び出されると、ループ内のさらなるイテレーションやコードは実行されません。
-
continue
ステートメント:- 現在のイテレーションをスキップし、次のものに移ります。
- ループはその後のイテレーションの実行を継続することができます。
結論
要約すると、break
とcontinue
のどちらを選択するかは、ループの挙動をどのように制御したいかに依存します。ループを完全に終了させたい場合はbreak
を使用し、特定のイテレーションをスキップしたい場合はcontinue
を選んでループを続行させます。
これらの概念を理解することで、C#やその他のプログラミング言語で、よりクリーンで効率的なコードを書くことができるようになります。コーディングを楽しんでください!