break は便利ですが、必ずしも使わなくても同じことを実現できます。ここでは フラグ変数 と 関数の return を使った方法を比較してみましょう。
1. フラグ変数を使う方法
ループを最後まで回すけれど、「見つかったかどうか」をフラグで管理します。
numbers = [3, 7, 12, 18, 25]
target = 18
found = False # フラグ変数
for n in numbers:
if n == target:
print("見つけた!")
found = True
# break は使わず、ループは最後まで回る
if not found:
print("見つからなかった…")
Python- メリット:
breakを使わずに制御できるので、ループの流れが一貫している。 - デメリット: 無駄に最後までループを回すため効率が悪い。コードが少し冗長になる。
2. 関数の return を使う方法
ループを関数にまとめて、見つかったら関数ごと終了します。
def search(numbers, target):
for n in numbers:
if n == target:
print("見つけた!")
return True # 関数を終了
print("見つからなかった…")
return False
search([3, 7, 12, 18, 25], 18)
Python- メリット: 見つかった瞬間に関数ごと終了できるので効率的。
- デメリット: 関数化が必要。処理が関数外に続く場合は工夫が必要。
3. break と比較
| 方法 | 特徴 | メリット | デメリット |
|---|---|---|---|
break | ループを即終了 | シンプル・効率的 | 多用すると読みにくい |
| フラグ変数 | ループは最後まで回す | break を使わずに済む | 無駄な処理が増える |
return | 関数ごと終了 | 効率的で明快 | 関数化が必要 |
まとめ
- 短い処理や探索:
breakが一番シンプル。 - ループ後にまとめて処理したい: フラグ変数が便利。
- 関数単位で早期終了したい:
returnが最適。
👉 実務では「読みやすさ」と「効率」のバランスで選びます。
例えば 検索アルゴリズムなら break や return がよく使われ、集計処理ならフラグ変数で最後まで回すこともあります。

