このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Python入門】無限ループを抜けるbreak文

無限ループを抜けるbreak文
Pythonのbreak文は、while文やfor文の内部で特定の条件が成立した場合に、そのループを即座に終了させるための制御構造です。break文を用いることで、無限ループや長い反復処理を途中で中断し、不要な処理を回避できます。ここでは、break文の基本構文や動作の流れを説明し、サンプルプログラムとして「コマンド入力ループ」を例に解説します。
本サンプルプログラムでは、ユーザにコマンドを入力させ、"quit"(大文字・小文字を区別せず)と入力された場合にループを終了する仕組みを実装します。

プログラムのダウンロード
「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。
1.break文の基本概念
1.1. 基本構文
break文は、ループ内で単独で記述され、条件が成立した際にそのループから抜け出す役割を果たします。基本的な構文は以下の通りです。
while 条件式:
文1
if 条件:
break # ここでループが中断され、残りの文はスキップされる
文2
解説
if 条件:
で特定の条件を評価し、その条件がTrueになった場合にbreak
文が実行されます。break
文が実行されると、その時点でループ内の残りの処理はスキップされ、ループ全体が終了してループ外の文に制御が移ります。
1.2. 処理の流れの概要
以下の表は、break文が実行されたときのループの基本的な処理の流れを示しています。
ステップ | 説明 |
---|---|
1. 条件式の評価 | ループ内のif文で指定された条件が評価される。 |
2. break文の実行 | 条件がTrueの場合、break文が実行され、残りの文はスキップされる。 |
3. ループの終了 | break文により、ループ全体が中断され、次の処理に移る。 |
2.サンプルプログラム:コマンド入力ループ
2.1. プログラムの概要
このプログラムは、ユーザに対してコマンドの入力を促し、"quit"と入力されるまでループを継続します。ユーザが"quit"と入力した場合、break文が実行され、ループが終了してプログラムが停止します。
2.2. サンプルプログラム
# 無限ループを開始し、ユーザにコマンド入力を促す
while True:
command = input("Enter command (type 'quit' to exit): ")
# ユーザが "quit" と入力したら、ループを中断する
if command.lower() == 'quit':
print("Exiting command loop.")
break # ループを終了する
# "quit" 以外の場合、入力されたコマンドをそのまま表示する
print("You entered:", command)
実行結果
Enter command (type 'quit' to exit): cp
You entered: cp
Enter command (type 'quit' to exit): ls
You entered: ls
Enter command (type 'quit' to exit): quit
Exiting command loop.
解説
- 無限ループの開始
while True:
により、条件が常にTrueの無限ループを開始します。 - ユーザ入力
input("Enter command (type 'quit' to exit): ")
で、ユーザにコマンドの入力を促します。 - 条件の評価
if command.lower() == 'quit':
によって、入力されたコマンドを小文字に変換し、"quit"と比較します。
・条件がTrueの場合、print("Exiting command loop.")
で終了メッセージを表示し、break
文でループが中断されます。
・条件がFalseの場合、print("You entered:", command)
により入力されたコマンドが表示され、ループは継続されます。 - ループの終了
break文が実行されると、whileループから抜け出し、ループ外の処理(ここではプログラムの終了)に移行します。
3.注意点と利用上のヒント
3.1. break文の使い所
- 無限ループや長い反復処理を、特定の条件で早期終了させたい場合に非常に有効です。
- ユーザの入力内容やエラーチェックなど、ループ内での判断に基づいてループを中断できます。
3.2. ネストされたループにおけるbreak文
break文は、最も内側のループのみを終了させます。複数のネストがある場合、外側のループも終了させたい場合は、フラグ変数や追加の条件分岐を用いる必要があります。
【表:break文の基本的な動作】
ステップ | 説明 |
---|---|
ユーザ入力の取得 | ユーザからコマンドを受け取り、変数 command に格納 |
条件式の評価 | if command.lower() == 'quit': で "quit" かどうかを評価 |
break文の実行 | 条件がTrueの場合、break 文でループを中断する。 |
ループの継続 | 条件がFalseの場合、入力されたコマンドが表示され、次の反復に進む。 |
まとめ
break文を用いることで、while文やfor文内で条件に応じたループの中断が容易に実現できます。
- 基本構文:
break
文は、if文と組み合わせて使用し、特定の条件が成立した際にループ全体を終了します。 - 実践例: コマンド入力ループの例では、ユーザが"quit"と入力した場合にbreak文でループを抜け出し、不要な処理を防いでいます。
- 注意点: break文はネストされたループの最も内側のループのみを終了するため、複数のループを一括で終了させたい場合は、追加の制御構造を検討する必要があります。
これらの知識を活用して、不要な反復処理を回避し、プログラムの制御フローを効率的に管理することができるようになります。