Python | break を使った方が読みやすい典型パターン vs 避けるべきパターン

Python
スポンサーリンク

「ここで終わり!」を明示できるのが 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 を使い、そうでない場面では条件式や関数化で整理する方が可読性が高い。

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました