ブレークによる複数のネストされたループの終了
複数の 'for' ループをネストするのは、データ構造を反復処理するための一般的なアプローチですが、途中ですべてのループが終了します。ループが必要になる場合もあります。この目的で 'break' 関数を利用できますか?
'break' の制限
残念ながら、'break' 関数はそのイミディエイトの範囲内で動作します。ループ。複数のネストされたループから抜け出すためにこれを適用しても効果的ではありません。これを試みると、現在のループが終了するだけで、ネストされたループは影響を受けません。
'goto' の場合
皮肉なことに、信頼できる 'goto' ステートメントは、多くの場合、現代のプログラミング手法では嫌われていますが、この特定のシナリオには適切なソリューションとして浮上します。 「break」とは異なり、「goto」を使用すると、ネスト レベルに関係なくコード ブロック間をジャンプできます。
ループ終了の深さの制御
次を使用して終了するループの数を制御します。 「goto」では、ループにラベルを付け、「goto」の宛先として適切なラベルを指定します。たとえば、2 つのネストされたループを終了するには:
outer_loop: for (initialization1; condition1; increment1) { inner_loop: for (initialization2; condition2; increment2) { // Exit both loops if (condition) { goto outer_loop; } } }
最も外側のループに関連付けられたラベルにジャンプすると、両方のネストされたループがすぐに終了します。
したがって、'break' は次の目的には適していません。複数のネストされたループを終了する場合、'goto' は、構文があまり優雅ではありませんが、必要な機能を提供します。
以上が「break」が失敗した場合、「goto」は複数の入れ子になったループを終了するのに役立ちますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。