このページで解説している内容は、以下の 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文はネストされたループの最も内側のループのみを終了するため、複数のループを一括で終了させたい場合は、追加の制御構造を検討する必要があります。

 これらの知識を活用して、不要な反復処理を回避し、プログラムの制御フローを効率的に管理することができるようになります。