PR

【Python】break文の使い方を3分でわかりやすく解説

Python

Pythonのbreak文は主にループ(whileループやforループ)の中で使用されるキーワードで、break文が実行されると、そのループは直ちに終了します。

参考 forループ / whileループ

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ループでの利用方法)や注意点を初心者向けにわかりやすくサンプルコード付きで解説します。

このページで学べる内容
  • break文の基本・使い方
  • forループとbreak文 / whileループとbreak文
  • break文を利用する際の注意点

Pythonエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。

参考 Pythonの基本的な書き方・構文ルール

スポンサーリンク

Python:break文

Pythonのbreak文は、現在のループを強制的に終了するためのものです。break文が実行されると、そのループは即座に終了し、次のコードの実行に移ります。

早速、簡単なbreak文の使い方を以下にサンプルで示します。

count = 0

while True:  # 無限ループ
    print(count)
    count += 1
    if count >= 5:
        break  # countが5以上になったらループを抜ける

参考 変数の使い方 / if文 / 代入演算子(+=)

このサンプルでは、無限ループを作り、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文を使用して余分な処理を省略することができます。

用語:イテラブル

イテラブル(Iterable)とは、その名の通り「反復可能な」、つまり一度に1つずつ順番にその要素を取り出すことができるオブジェクトのことを指します。Pythonでは、例えばリストタプル、文字列、辞書セットなどがイテラブルです。

fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
    print(fruit)

このコードでは、fruitsというリストを作成し、その後forループを使ってリストの各要素を順番に取り出しています。リストの要素は順番にfruit変数に代入され、print(fruit)により出力。このように一つずつ順番に要素を取り出すことができるので、リストはイテラブルなオブジェクトと言えます。

Python:whileループとbreak文

続いてwhileループの中でbreak文を利用する方法をご説明します。

以下のサンプルでは、ユーザーからの入力を受け取り、特定の条件(この例では"終了"という文字列)に一致したらループを終了します。

while True:
    user_input = input("何か入力してください('終了'と入力すると終了します): ")
    if user_input == '終了':
        break  # ユーザーが'終了'と入力したらループを終了
    else:
        print(f'あなたの入力: {user_input}')

このように、break文はユーザーの入力や外部からのシグナルに応じてプログラムの実行を制御する際に非常に有用です。

これらの例からわかるように、break文はプログラムの流れを制御し、効率的で理解しやすいコードを書くための重要なツールと言えます。

Python:break文を利用する際の注意点

最後にbreak文を利用する際の注意点について補足しておきます。

break文を利用する際の注意点
  • break文はループの中でしか使えない
  • 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}')

参考 f-ストリング(print関数)

このコードを実行すると、以下のような出力が得られます。

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:break文のまとめ
  • Pythonのbreak文はループを途中で終了するための構文
  • ループの外では使えずループ内でのみ有効
  • ネストしたループでは内側のループだけを終了する
    →その際ループは正常な終了とは見なさない
# リストから5を超える数値を探し、見つかれば出力してループ終了
numbers = [1, 3, 4, 2, 6, 7, 5, 8]
for num in numbers:
    if num > 5:
        print(f'最初の5を超える数値は: {num}')
        break

始めてPythonを勉強するのは結構難しいですよね。

でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。

Pythonをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?今すぐ行動したい方は以下の記事をチェック!

読者料典 Python入門:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
Python
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました