C#においてforeach文やswitch文はよく使われる制御構造ですが、
switch文の中からforeach文を抜け出す際にはいくつかの注意が必要です。
本記事ではその方法について解説します。
foreach文の基本的な抜け方
break文を使用してforeachループから抜けることができます。
foreach (var 要素 in コレクション)
{
if (条件)
{
// 条件が真の場合の処理
break; // ループを抜ける
}
// ループ内の処理
}
// ループ処理を抜けた後の処理
gotoでswitch文から途中で抜ける
goto文を使用して、ラベルにジャンプすることで、foreachループから直接抜けることができます。
foreach (var 要素 in コレクション)
{
switch (条件)
{
case 値1:
// 値1の場合の処理
goto ループ終了;
case 値2:
// 値2の場合の処理
goto ループ終了;
// 他のケース
}
}
ループ終了:
// ループ処理を抜けた後の処理
広告
return文でメソッド処理を終了させる
return文を使用して、メソッド自体から抜けることで、foreachループも抜けることができます。
foreach (var 要素 in コレクション)
{
switch (条件)
{
case 値1:
// 値1の場合の処理
return;
case 値2:
// 値2の場合の処理
return;
// 他のケース
}
}
// ループ処理を抜けた後の処理
広告
フラグ変数を使用して抜ける
フラグ変数を使用して、foreachループ内で条件が満たされた場合に、
そのフラグをセットし、ループを抜けることができます。
bool ループを抜けるフラグ = false;
foreach (var 要素 in コレクション)
{
switch (条件)
{
case 値1:
// 値1の場合の処理
ループを抜けるフラグ = true;
break;
case 値2:
// 値2の場合の処理
ループを抜けるフラグ = true;
break;
// 他のケース
}
if (ループを抜けるフラグ)
break;
}
// ループ処理を抜けた後の処理
まとめ
foreach文内でif文やswitch文からループ処理を抜ける方法として、
goto文やreturn文、break文を使用することが一般的です。
ただし、これらの制御構文は使い方に注意が必要なため、コードの可読性を損なわないよう慎重に使用しましょう。