for 文や while 文を使用している最中に、特定のエラーが発生したり、目的のデータが見つかったりした場合、残りの処理を行わずにループを直ちに終了させたいことがあります。
このような「ループからの脱出」を実現するために、Pythonでは break 文を使用します。
この記事では、break 文を使用して、特定の条件を満たした時点でループ処理を強制終了する方法について解説します。
目次
break 文の基本動作
break 文が実行されると、Pythonインタプリタは現在実行中のループ(一番内側のループ)を即座に中断し、ループブロックの外側にある次の処理へと移動します。
これ以上繰り返す必要がない場合や、これ以上続けると問題が起きる場合に有効です。
具体的な使用例:異常値の検知による緊急停止
例として、工場のセンサーから取得した温度データのリストを順番にチェックするプログラムを作成します。
温度が許容範囲(閾値)を超えているデータが見つかった場合、それは異常事態であるため、残りのデータチェックを中止して、直ちにシステムを停止(ループを終了)させる必要があります。
# センサーから取得した温度データのリスト
sensor_temperatures = [45.2, 48.5, 52.0, 115.8, 47.0, 46.5]
# 安全限界温度
safety_limit = 100.0
print("--- 温度チェックを開始 ---")
for temp in sensor_temperatures:
# 限界温度を超えているかチェック
if temp > safety_limit:
print(f"警告: 異常温度 {temp}度 を検知しました。")
print("システムを緊急停止します。")
# ここでループを強制終了する
break
# 正常な場合の処理
print(f"確認中... {temp}度: 正常")
print("--- チェック処理終了 ---")
実行結果:
--- 温度チェックを開始 ---
確認中... 45.2度: 正常
確認中... 48.5度: 正常
確認中... 52.0度: 正常
警告: 異常温度 115.8度 を検知しました。
システムを緊急停止します。
--- チェック処理終了 ---
解説
- リストの要素
45.2,48.5,52.0まではsafety_limit(100.0) を超えていないため、if文の条件はFalseとなり、正常のメッセージが表示されます。 - 4番目の要素
115.8はsafety_limitを超えているため、if文の中に入ります。 - 警告メッセージを表示した後、
break文が実行されます。 - これにより、リストにはまだ
47.0と46.5というデータが残っていますが、それらは処理されずにループ全体が終了します。
検索処理での活用
break 文は、エラー処理だけでなく「探索」にもよく使われます。「探しているデータが見つかったら、それ以上探す必要がないので終了する」というロジックです。
# ユーザーIDリスト
user_ids = ["u001", "u005", "u003", "u008"]
target_id = "u003"
for uid in user_ids:
if uid == target_id:
print(f"ターゲットID {target_id} を発見しました。")
break
print(f"{uid} を確認中...")
実行結果:
u001 を確認中...
u005 を確認中...
ターゲットID u003 を発見しました。
u003 が見つかった時点でループが止まり、無駄な処理(u008 の確認)が省略されました。
まとめ
- ループ処理を途中で強制終了させるには
break文を使用します。 if文と組み合わせることで、「異常値が見つかったら停止」「目的の値が見つかったら終了」といった制御が可能になります。breakが実行されると、残りの要素に対する処理はスキップされます。
