Python | フラグ変数を使わずに「関数化+return」で一気に抜ける方法

Python Python
スポンサーリンク

三重ループで「特定条件を見つけたら全部のループを終了したい」とき、フラグ変数を使う方法が一般的ですが、もっとシンプルにするには 関数化して return を使うのが便利です。


サンプルコード

def search_value():
    for A in range(1, 6):
        for B in range(1, 6):
            for C in range(1, 6):
                result = A * B * C

                if result % 2 == 0:   # 偶数はスキップ
                    continue

                print(f"A={A}, B={B}, C={C}, result={result}")

                if result == 45:      # 特定条件で終了
                    print("★ 見つけた!探索終了")
                    return  # 関数ごと終了 → 全ループから一気に抜ける

    print("見つからなかった")

# 実行
search_value()
Python

実行結果(抜粋)

A=1, B=1, C=1, result=1
A=1, B=1, C=3, result=3
...
A=3, B=3, C=5, result=45
★ 見つけた!探索終了

解説ポイント

  • 関数化のメリット
    • return を使うと「関数全体を終了」できるので、外側ループまで一気に抜けられる。
    • フラグ変数を使わずにシンプルに書ける。
  • continue は「不要な処理をスキップ」するために併用。
  • return は「目的を達成したら即終了」するために使う。

使いどころ

  • 探索処理: 目的の値を見つけたら即終了したいとき
  • 検証処理: 条件を満たしたら残りを調べる必要がないとき
  • ゲームやシミュレーション: 勝敗が決まったら即終了したいとき

まとめ

  • フラグ変数を使うと「どの階層まで抜けるか」を制御できるが、コードが少し複雑になる。
  • 関数化+return を使うと「見つけたら即終了」が直感的に書ける。
  • continue と break と return を使い分けることで、ループ処理を効率的に制御できる。
タイトルとURLをコピーしました