C# ネストされたループの効果的な終了方法
ネストされたループを扱う場合、多くの場合、事前にすべてのループを同時に終了する必要があります。この目的のために、いくつかの効率的な手法を使用できます。
Goto ステートメント (非推奨)
お勧めできませんが、1 つの方法は goto ステートメントを使用することです。
<code class="language-c#">for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (/* 退出条件 */) { goto ExitLoops; } } } ExitLoops:;</code>
このアプローチは、読みにくく、間違いが発生しやすいため、通常は推奨されません。
匿名メソッド
より柔軟なアプローチは、ネストされたループを匿名メソッドにカプセル化し、return ステートメントを使用して終了することです。
<code class="language-c#">Action work = delegate { for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { if (/* 退出条件 */) { return; } } } }; work();</code>
この場合、匿名メソッドの return ステートメントにより、両方のネストされたループが直ちに終了します。
ローカル関数 (C# 7 以降)
C# 7 以降で導入されたローカル関数は、より洗練されたソリューションを提供します。
<code class="language-c#">void Work() { for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { if (/* 退出条件 */) { return; } } } }</code>
ローカル関数を使用すると、別のメソッド内でメソッドを宣言できるため、コード構造を明確に保ちながら、return ステートメントを使用して両方のループを終了できます。
以上がC# で入れ子になったループを効率的に終了するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。