break は便利ですが、乱用するとコードが読みにくくなったり、意図が分かりづらくなることがあります。以下のような場面では なるべく使わない方が良い とされています。
1. 複雑な入れ子ループの中
- 問題点:
breakが「どのループを抜けるのか」一目で分かりにくい。 - 例:
for i in range(5):
for j in range(5):
if 条件:
break # 内側だけ抜けるが、外側まで抜けたいのか曖昧
Python- 代替: フラグ変数や関数の
returnを使って意図を明確にする。
2. 複数の終了条件が散らばる場合
- 問題点: ループの途中に
breakが何度も出てくると「どこで終わるのか」が追いづらい。 - 例:
while True:
if 条件A: break
if 条件B: break
if 条件C: break
Python- 代替: ループ条件を整理して、終了条件を一箇所にまとめる。
while not (条件A or 条件B or 条件C): # 本体処理
3. ループの「自然な終了条件」がある場合
- 問題点: 本来は
forやwhileの条件式で制御できるのに、breakを使うと意図が不明瞭になる。 - 例:
for i in range(10):
if i == 5:
break
Python- 代替: ループ範囲を適切に設定する。
for i in range(5): # 最初から5までに限定
...
Python4. 可読性より効率を優先してしまう場合
- 問題点:
breakを使うと効率は良いが、初心者やチームメンバーが「なぜここで終わるのか」を理解しづらい。 - 例: 大量の
breakを使った早期終了ロジック。 - 代替: 関数化して
returnを使うと「ここで処理を終える」という意図が明確になる。
5. テストや保守が難しくなる場合
- 問題点:
breakがあるとループの終了タイミングが複雑になり、テストケースを網羅しづらい。 - 代替: 状態管理(フラグ変数)や明示的な条件式で終了を制御する。
✅ まとめ
- 避けるべき場面:
- 入れ子ループで意図が曖昧になるとき
- 終了条件が複数散らばるとき
- 本来ループ条件で表せるとき
- チーム開発で可読性が重要なとき
- 代替手段:
- フラグ変数
- 関数の
return - ループ条件の整理
👉 break は「ここで終わり!」を簡潔に書ける強力な道具ですが、読み手が迷う場面では避けるのがベストです。

