三重ループで「特定条件を見つけたら全部のループを終了したい」とき、フラグ変数を使う方法が一般的ですが、もっとシンプルにするには 関数化して 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 を使い分けることで、ループ処理を効率的に制御できる。


