Pythonのbreak文は主にループ(whileループやforループ)の中で使用されるキーワードで、break文が実行されると、そのループは直ちに終了します。
for num in range(10): if num == 5: break print(num) # 出力結果 # 0 # 1 # 2 # 3 # 4
参考 print関数
上記のコードは、0から9までの数字を順に表示するforループです。しかし、if num == 5:
の条件が成り立つと、break
文が実行され、ループが直ちに終了するというコード。そのため、出力は0から4までの数字になっています。
このページでは、break文の使い方(whileループやforループでの利用方法)や注意点を初心者向けにわかりやすくサンプルコード付きで解説します。
Pythonエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。
Python:break文
Pythonのbreak
文は、現在のループを強制的に終了するためのものです。break
文が実行されると、そのループは即座に終了し、次のコードの実行に移ります。
早速、簡単なbreak文の使い方を以下にサンプルで示します。
count = 0 while True: # 無限ループ print(count) count += 1 if count >= 5: break # countが5以上になったらループを抜ける
このサンプルでは、無限ループを作り、countの値が5以上になった時点でループを終了させています。whileループの中でcount += 1
が実行されるたびに、countの値は1ずつ増加します。countが5以上になると、break
文が実行されてループが終了するコードです。
break
文を使用せずにこのプログラムを実行すると、countの値が無限に増え続け、プログラムは永遠に終了しません(=無限ループ)。しかし、break
文により、countが特定の値に達したときにループを終了させることができます。
このように、break
文はループを制御する強力なツールで、プログラムが無限ループに陥るのを防ぐのに役立ちます。
Python:forループとbreak文
break文の基本を理解したところで、更に実践的な使い方について見ていきましょう。
以下のサンプルでは、リスト内の数字を探索し、特定の条件(この例では偶数)に合致する最初の要素を見つけたら、その時点でループを終了します。
numbers = [1, 3, 7, 9, 2, 4, 5, 8] for num in numbers: if num % 2 == 0: # 数字が偶数であれば print(f'最初の偶数は: {num}') break # ループを終了
このように、リストや他のイテラブルを探索する際に、条件に一致する最初の要素を見つけたらそれ以上探索を続ける必要がない場合、break
文を使用して余分な処理を省略することができます。
Python:whileループとbreak文
続いてwhileループの中でbreak文を利用する方法をご説明します。
以下のサンプルでは、ユーザーからの入力を受け取り、特定の条件(この例では"終了"という文字列)に一致したらループを終了します。
while True: user_input = input("何か入力してください('終了'と入力すると終了します): ") if user_input == '終了': break # ユーザーが'終了'と入力したらループを終了 else: print(f'あなたの入力: {user_input}')
このように、break
文はユーザーの入力や外部からのシグナルに応じてプログラムの実行を制御する際に非常に有用です。
これらの例からわかるように、break
文はプログラムの流れを制御し、効率的で理解しやすいコードを書くための重要なツールと言えます。
Python:break文を利用する際の注意点
最後にbreak文を利用する際の注意点について補足しておきます。
1つ1つ、サンプルコードで比較しながら詳しく解説します。
注意点1:break文はループの中でしか使えない
break文はループ外で使用するとエラーになります。以下の例はインデントが不正で、ループ内での利用とみなされません。
print("Hello, world!") break # SyntaxError: 'break' outside loop print("Goodbye, world!")
正しくはこちら↓。
for i in range(5): if i == 3: break print(i) # 0, 1, 2
参考 range関数
最も基本的な注意点ですが、初心者のうちは陥りがちな罠ですので、しっかり頭に入れておきましょう。
注意点2:break文は最も内側のループのみを抜ける
break
文は最も内側のループしか終了させません。これは、ネストしたループ(ループの中にループがある場合)で特に重要となるポイント。つまり、内側のループにbreak
文があると、その内側のループだけが終了し、外側のループは継続します。
例えば、以下のようなコードを考えてみましょう。
for outer in range(3): for inner in range(3): if inner == 1: break print(f'outer={outer}, inner={inner}')
このコードを実行すると、以下のような出力が得られます。
outer=0, inner=0 outer=1, inner=0 outer=2, inner=0
内側のループはinner == 1
のときにbreak
文により終了しますが、外側のループは継続します。そのため、outer
の値は0から2まで変化しますが、inner
の値は常に0のままとなります。
注意点3:break文はループを正常に終了するわけではない
break
文を使用してループから抜けると、そのループは正常に終了したとは見なされません。
そのため、ループにelse
節がある場合、そのelse
節はbreak
文によってループが終了した場合には実行されないということ。
例えば、以下のようなコードを考えてみましょう。
for i in range(5): if i == 3: break else: print("ループが正常に終了しました")
このコードを実行しても、print関数による "ループが正常に終了しました"というメッセージは表示されません。
なぜなら、i == 3
のときにbreak
文が実行され、ループが正常に終了せずに終わっているからです。
ループのelse
節は、ループが完全に終了した(すべてのイテレーションが完了した)場合にのみ実行されます。break
文によってループが途中で終了した場合、そのループは完全に終了したとは見なされず、その結果、else
節は実行されないということを押さえておきましょう。
Python:break文のまとめ
始めてPythonを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。
Pythonをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?今すぐ行動したい方は以下の記事をチェック!
読者料典 Python入門:学習カリキュラム ←こちらから!