Pythonループ制御:break文を使って特定の条件で処理を中断する方法

for 文や while 文を使用している最中に、特定のエラーが発生したり、目的のデータが見つかったりした場合、残りの処理を行わずにループを直ちに終了させたいことがあります。

このような「ループからの脱出」を実現するために、Pythonでは breakを使用します。

この記事では、break 文を使用して、特定の条件を満たした時点でループ処理を強制終了する方法について解説します。

目次

break 文の基本動作

break 文が実行されると、Pythonインタプリタは現在実行中のループ(一番内側のループ)を即座に中断し、ループブロックの外側にある次の処理へと移動します。

これ以上繰り返す必要がない場合や、これ以上続けると問題が起きる場合に有効です。Python break statement flow chartの画像

具体的な使用例:異常値の検知による緊急停止

例として、工場のセンサーから取得した温度データのリストを順番にチェックするプログラムを作成します。

温度が許容範囲(閾値)を超えているデータが見つかった場合、それは異常事態であるため、残りのデータチェックを中止して、直ちにシステムを停止(ループを終了)させる必要があります。

# センサーから取得した温度データのリスト
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度 を検知しました。
システムを緊急停止します。
--- チェック処理終了 ---

解説

  1. リストの要素 45.2, 48.5, 52.0 までは safety_limit (100.0) を超えていないため、if 文の条件は False となり、正常のメッセージが表示されます。
  2. 4番目の要素 115.8safety_limit を超えているため、if 文の中に入ります。
  3. 警告メッセージを表示した後、break 文が実行されます。
  4. これにより、リストにはまだ 47.046.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 が実行されると、残りの要素に対する処理はスキップされます。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次