「ここで終わり!」を明示できるのが break の強みですが、乱用すると逆に読みにくくなります。コード例で対比してみましょう。
使った方が読みやすい典型パターン
例1: 探し物が見つかったら即終了
# break を使うと意図が明確
numbers = [3, 7, 12, 18, 25]
target = 18
for n in numbers:
if n == target:
print("見つけた!")
break
else:
print("見つからなかった…")
Python👉 「見つかったら終わり」という意図が一目で分かる。
👉 else で「最後まで探したけど見つからない」も自然に書ける。
例2: ユーザー入力で終了
while True:
text = input("文字を入力してください('exit'で終了): ")
if text == "exit":
print("終了します")
break
print("入力:", text)
Python👉 無限ループを安全に制御する「脱出口」として分かりやすい。
❌ 避けるべきパターン
例3: 終了条件が複数散らばっている
while True:
if 条件A:
break
if 条件B:
break
if 条件C:
break
# 本体処理
Python👉 どこで終わるのか追いづらい。終了条件が分散していて可読性が低い。
改善例:
while not (条件A or 条件B or 条件C):
# 本体処理
Python👉 終了条件を一箇所にまとめると読みやすい。
例4: 本来ループ条件で表せるのに break を使う
for i in range(10):
if i == 5:
break
print(i)
Python👉 「5まで繰り返す」だけなのに、わざわざ break を使っていて冗長。
改善例:
for i in range(5):
print(i)
Python👉 ループ範囲を適切に設定すれば break は不要。
例5: 入れ子ループで意図が曖昧
for i in range(3):
for j in range(3):
if j == 1:
break # 内側だけ抜けるが、外側まで抜けたいのか分かりにくい
Python👉 「どのループを抜けるのか」が曖昧で混乱しやすい。
改善例: フラグ変数や関数の return を使って意図を明確にする。
まとめ
- break が読みやすい場面:
- 探し物が見つかったら即終了
- ユーザー入力で終了条件を決める
- 無限ループの安全な脱出口
- 避けるべき場面:
- 終了条件が複数散らばる
- 本来ループ条件で表せるのに break を使う
- 入れ子ループで意図が曖昧になる
👉 指針: 「早期終了が分かりやすい場面」では break を使い、そうでない場面では条件式や関数化で整理する方が可読性が高い。

