このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Python入門】繰り返しを中断するbreak文

繰り返しを中断するbreak文
Pythonのbreak
文は、ループ処理中に特定の条件が成立した際、その反復の残りの処理をスキップして、即座にループ全体を終了するための制御構造です。これにより、不要な処理を回避し、プログラムの実行効率を向上させることができます。
ここでは、while
文とbreak
文を組み合わせた例として、ユーザから数値を入力させ、負の数が入力されたらループを終了し、これまで入力された正の数の合計を出力するプログラムを紹介します。

プログラムのダウンロード
「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。
1.break
文の基本概念
1.1. 基本構文
break
文は、以下のようにループ内部で単独の文として記述されます。
while 条件式:
文1
if 条件:
break # この行が実行されると、ループが中断される
文2
解説
- ループ内で
if
文と組み合わせ、特定の条件がTrueになった場合にbreak
文を実行します。 break
文が実行されると、その反復の残りの文(ここでは文2)はスキップされ、ループが終了してループの外側の文に処理が移ります。
1.2. 処理の流れ
break
文を含むループの基本的な処理の流れは、次の表のとおりです。
ステップ | 説明 |
---|---|
1. 条件式の評価 | ループ開始時および各反復の先頭で条件式が評価される |
2. if文による判断 | if文内で特定の条件がTrueになれば、break 文が実行される |
3. ループの中断 | break 文実行後、その反復の残りの文はスキップされ、ループが終了する |
4. ループ外の処理 | ループ終了後、ループ外に記述された文が実行される |
2.実践例:正の数を合計するプログラム(負の数でループ終了)
2.1. プログラムの概要
このプログラムは、ユーザに正の数を入力してもらい、その合計を計算します。ただし、ユーザが負の数を入力した場合、break
文を使ってループを中断し、現在までの合計を表示します。
2.2. サンプルプログラム
# 合計値を保持する変数totalを初期化
total = 0
# 無限ループを開始する(while True)
while True:
# ユーザから数値を入力してもらい、浮動小数点数に変換して変数numに代入する
num = float(input("Enter a positive number (or a negative number to stop): "))
# 入力された数値が負の場合、break文を実行してループを終了する
if num < 0:
print("Negative number encountered. Exiting loop.")
break # ここでループが中断され、以下の文は実行されない
# 負でない場合、numをtotalに加算する
total += num
# ループ終了後、合計値を表示する
print("Total sum:", total)
実行結果
Enter a positive number (or a negative number to stop): 3.1
Enter a positive number (or a negative number to stop): 6.5
Enter a positive number (or a negative number to stop): -2
Negative number encountered. Exiting loop.
Total sum: 9.6
解説
while True:
により無限ループを開始します。input("Enter a positive number (or a negative number to stop): ")
によって、ユーザからの入力を促し、float()
関数で数値に変換して変数num
に格納します。if num < 0:
で入力された数値が負であるかを評価し、負の場合は警告メッセージを表示してbreak
文によりループを終了します。- 正の数の場合は、
total += num
により合計値を更新します。 - ループが終了した後、
print("Total sum:", total)
で合計値を出力します。
3.注意点と利用上のヒント
3.1. ループ中の条件チェック
ループ内でbreak文を使う際は、必ず終了条件が正しく設定されていることを確認し、無限ループに陥らないように注意する必要があります。
3.2. 複数のループがネストされている場合
break文は、最も内側のループのみを中断します。複数のネストされたループ全体を中断する場合は、適切なフラグ変数や他の制御構造を組み合わせる必要があります。
【break文の基本的な流れ】
ステップ | 説明 |
---|---|
1. 入力の受け取り | ユーザから数値を入力し、変数numに代入 |
2. 終了条件の評価 | numが負かどうかを評価し、負ならbreakでループ終了 |
3. 合計値の更新 | 正の場合は合計値totalにnumを加算 |
4. ループの終了と出力 | breakまたは条件を満たすまでループが継続し、終了後に合計を表示 |
まとめ
break文は、while文やfor文の中で特定の条件が成立した場合に、即座にそのループを中断するための重要な制御構造です。
- 基本構文: 単独で
break
と記述し、if文と組み合わせて条件に応じた中断処理を実装します。 - 処理の流れ: ループ内で条件がTrueになると、break文が実行され、その時点で残りの処理がスキップされ、ループを抜け出します。
- 実践例: ユーザが負の数を入力した場合にループを終了し、これまでの合計を出力するプログラムを通して、break文の利用方法と効果を示しました。
- 注意点: ループ中のデータの変更や、ネストされたループの場合の制御に注意し、必要な場合は適切な構造やフラグを用いることで、より堅牢なプログラムを作成できます。
これらの知識を応用することで、不要な反復処理を回避し、効率的なループ制御を実現できるようになります。