【Python】break文

python_logo

今回はbreak文についてまとめます。

break文はほとんど他の言語と同じような動作をします。最も内側にあるループから抜け出すという動作です。

ほとんど同じなのですが、elseブロックと組み合わせることができるのがPythonならではの特徴だと思います。

それでは見ていきましょう!

break文とは

最も内側のループを無条件で抜けます。

また、その特性上、for文やwhile文といったループの中でしか使えません。これはcontinue文と同様です。

上手に使うことで文のネストを減らすことができます。

break文の用法

breakの使い方は非常にシンプルです。ループの中で使います。
Pythonの場合、ループはfor文やwhile文の2つしかないので、この中でしか使えません。

それでは下のコードを見てみましょう。

for x in range(1, 10):

    if x == 6:
        break

    print(x)
print('well done')

実行すると以下の結果になります。

1
2
3
4
5
well done

6以降の数字は表示されていませんね。
ループを終了してループ外のprint(‘well done’)を実行していることが分かります。

それでは次のコードはどうでしょうか?

for x in range(1, 3):

    y = 0
    while y < 5:

        print(x, y)

        if y == 2:
            break

        y += 1

print('well done')

ループが入れ子(ネスト)されていますね。
この場合の実行結果は以下になります。

1 0
1 1
1 2
2 0
2 1
2 2
well done

そうです。break文は一番内側のループを抜け出すのです。

あくまでwhile文を抜ける処理になりますので、for文は続いていることが分かると思います。

elseとの組み合わせ

break文はelseブロックと組み合わせることができます。

elseブロックはループが正常に終了した場合に実行されます。break文でループを強制的に終了された場合は実行しません。

以下のコードを見てみましょう。

for x in range(1, 5):

    if x == 3:
        break
    print(x)

else:
    print('Ok it is not break')

print('well done')

実行結果は以下になります。

1
2
well done

for文内でbreak文が実行されていますので,else文が実行されていません。

これはPythonに特有なコードで、breakせずに正常終了したかどうかをelseブロックを用いることで簡潔に表現できます。

他の言語ではこのようなことはできません。なにかしらのフラグを立てる必要があります。

まとめ

いかがでしょうか。

break文はcontinue文と非常に似ています。
ループ中の流れを変更し、別の位置にジャンプさせます。

また、breakに特有なのがelseブロックと組み合わせた時の動作です。
breakによって終了したかどうかを検査する場合に効果を発揮します。

以上になります。

みなさんのPythonライフが向上するように祈っています!