ホームページ  >  記事  >  バックエンド開発  >  コード内のネストされたループから効率的に抜け出すにはどうすればよいですか?

コード内のネストされたループから効率的に抜け出すにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 12:57:31791ブラウズ

How Can I Efficiently Break Out of Nested Loops in My Code?

入れ子ループからの脱却: 包括的なアプローチ

入れ子ループは基本的なプログラミング構造ですが、途中で終了するのは困難な場合があります。多くの言語では、従来の解決策には例外をスローすることが含まれており、これにより見苦しいコードが生成される可能性があります。ただし、より洗練されたメソッドも利用できます。

'break' および 'else' コンストラクトの紹介

1 つのアプローチは、'break' と 'else' を使用することです。構築します。 「break」ステートメントは、それが含まれる最も内側のループを直ちに終了します。「else」ステートメントは、「for」ループの後に配置されると、「break」に遭遇せずにループが完了した場合にのみ実行されます。

たとえば、次のコードは、'x' と 'y' の積が 50 を超えるとネストされたループから抜け出します。

for x in range(10):
    for y in range(10):
        print(x * y)
        if x * y > 50:
            break
    else:
        continue  # only executed if the inner loop did NOT break
    break  # only executed if the inner loop DID break

このアプローチにより、例外のスローが回避され、よりクリーンなコード構造が提供されます。

より深いループへの拡張

「break」構造と「else」構造は、より深いループでも同様に機能します。たとえば、次のコードは、「x」、「y」、および「z」の積が 30 に等しい場合に最も外側のループから抜け出します。

for x in range(10):
    for y in range(10):
        for z in range(10):
            print(x, y, z)
            if (x * y * z) == 30:
                break
        else:
            continue  # inner loop did NOT break
        break  # inner loop DID break
    else:
        continue  # middle loop did NOT break
    break  # middle loop DID break

このエレガントなソリューションにより、ループの実行を正確に制御できます。 、コードの可読性と保守性が向上します。

以上がコード内のネストされたループから効率的に抜け出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。