「見つかったら止める」「条件が揃ったら打ち切る」。break は業務コードで頻出です。初心者でもすぐ使えるように、よくある場面をテーマ別に短いコード例と一緒に解説します。
検索・探索の打ち切り
- 最初の一致を見つけたら終了(一次元リスト):
items = ["A", "B", "X", "C"]
for s in items:
if s == "X":
print("見つかった:", s)
break
Python- 存在チェック(見つかったかどうかのフラグ返却):
found = False
for s in items:
if s == "X":
found = True
break
print("存在する" if found else "存在しない")
Python- 二重ループで最初の一致(内側のみ終了):
grid = [[1, 2], [3, 4]]
for row in grid:
for x in row:
if x % 2 == 0:
print("最初の偶数:", x)
break # 内側だけ止まる
# 外側は続く
Python- 二重ループで早期終了(外側も止めたい時はフラグ):
grid = [[1, 2], [3, 4]]
found = False
for row in grid:
for x in row:
if x == 4:
print("見つかった:", x)
found = True
break
if found:
break
Python- 文字列検索(最初の出現位置の検出):
t
text = "abcXdef"
pos = None
for i, ch in enumerate(text):
if ch == "X":
pos = i
break
print(pos)
Pythonバリデーション・品質チェック
- 最初の不正入力で中断(メッセージを即返す):
inputs = ["ok", "ok", "", "ok"]
for v in inputs:
if v == "":
print("空文字を検出")
break
Python- 必須条件の欠落を見つけたら中断:
required = ["name", "email", "id"]
provided = {"name": "A", "id": "123"}
for key in required:
if key not in provided:
print("不足:", key)
break
Python- 閾値超過でテスト打ち切り:
measures = [0.1, 0.2, 0.9, 0.3]
limit = 0.8
for m in measures:
if m > limit:
print("閾値超過:", m)
break
Python- 重複検出で停止(ユニーク制約チェック):
seen = set()
dup = None
for v in [1, 2, 3, 2]:
if v in seen:
dup = v
break
seen.add(v)
print("重複:", dup)
Python入出力・ストリーム処理
- ログ読みで最初のエラー行を見つけたら停止:
for line in log_lines:
if "ERROR" in line:
print("エラー:", line)
break
Python- ユーザー入力で終了コマンド受信で停止:
while True:
cmd = input("> ")
if cmd == "quit":
print("終了")
break
# それ以外は処理
Python- APIレスポンスのページングで条件達成後に打ち切り:
total = 0
for page in pages: # 事前に取得したページリストなど
total += sum(page)
if total >= 1000:
break
Python- ファイルスキャンで最初のマッチで停止:
import re
pattern = re.compile(r"\bID:\d+\b")
for line in open("data.txt"):
if pattern.search(line):
print("ID行:", line.strip())
break
Python最適化・探索の枝刈り
- コストが一定以上ならそれ以上の候補生成をやめる:
best = float("inf")
for cost in candidate_costs:
if cost >= best:
break # 以降は改善しないと分かっている
# 改善候補の検証
best = min(best, cost)
Python- ソート済みデータで範囲外になったら打ち切り:
values = [1, 3, 5, 10, 20] # 昇順
for v in values:
if v > 8:
break
print(v) # 8以下だけ処理
Python- 期限超過のタスクは以降を処理せず停止(日付昇順):
for task in sorted_tasks: # 締切昇順
if task.deadline > today:
break # 以降はすべて未来日
# 期限内の処理
Python- 優先度順処理で目標達成後に打ち切り:
points = 0
for job in high_priority_jobs:
points += job.score
if points >= target:
break
Pythonループ制御・保守性の向上
- for-else で「見つからなかった」報告(break とセット):
for v in [1, 3, 5]:
if v % 2 == 0:
print("偶数:", v)
break
else:
print("偶数はなし")
Python- ネスト内での例外回避(危険要素を検出したら以降を回さない):
for row in data_rows:
for field in row:
if field is None:
print("欠損検出")
break
# 欠損が見つかった行は残りの列を処理しない
Python- リトライループで成功したら終了:
MAX_RETRY = 3
for _ in range(MAX_RETRY):
if attempt():
print("成功")
break
print("リトライ中...")
Python- 構成探索で最初の有効設定で停止:
configs = [{"a":1}, {"a":2}, {"a":3}]
for cfg in configs:
if validate(cfg):
use(cfg)
break
Python- メニュー選択で確定したら入力ループを抜ける:
options = {"1": "開始", "2": "設定", "9": "終了"}
while True:
sel = input("選択: ")
if sel in options:
print("選択:", options[sel])
break
print("無効な入力です")
Python使い分けの指針と小さなコツ
- 指針:
- ループだけ止めたい: break
- 今回だけスキップしたい: continue
- 処理全体を終えたい: 関数化して return
- コツ:
- for-else を活用: 見つからなかった処理を自然に書ける。
- ネストが深い時: 外側も止めたいならフラグか関数+return。
- ソートや前提条件を活かす: 範囲外が分かった時点で break すると大幅に速くなる。
どのパターンも「無駄を早く切る」ためのもの。あなたの業務データの性質(出現位置、並び方、閾値)を意識して、止められるところで止めると、コードは速く読みやすくなります。

