【python入門者必見!】breakの基本と応用を徹底解説
Pythondの学習を始めて間もない方なら、
「Pythonのループ処理って何?」
「break処理をマスターしたい!」
「break以外でループを抜け出す方法は?」
と、悩んだり考えた経験があるのではないでしょうか?
プログラムでは、同じ処理を何度も実行することがあります。
その時に、同じ処理を何度もプログラム内に記述すると効率が悪いですよね。
効率よく進めていくためにもPythonでは、同じ処理を繰り返し行う「ループ処理」という機能を使用します。
この記事では、
- breakとは何か
- 多重ループを抜ける方法
- break以外の方法でループを終了させる方法
などについて詳しくご紹介していきます。
この記事を読めば、「break」を使ったループ処理ができるようになるでしょう。
breakを理解しより効率よくプログラムを進めたい方は、ぜひ最後まで読み進めてくださいね。
breakとは
breakとは「抜け出す」という意味を持ちます。
主に、for文やwhile文のブロック処理を中断し、抜け出したいときに使用します。
break文を使用するとそれ以降の処理を行わず、for文やwhile文の繰り返し処理自体が終了します。
breakを使用することで、好きなところで処理を中断しループを抜け出せるのです。
ループ処理をどこまでで止めるか指定する
ループ処理を止めるbreakですが、使用する重要なポイントはプログラマーがどこでループ処理を止めるかを考えて、break処理を入れることです。
また決まったループ処理だけではなく、無限ループになってしまう可能性がある場合もbreak処理を入れることもあります。
breakの基本的な記述方法について
breakはfor文またはwhile文の繰り返し処理の中でif文とセットで使われることが多いです。
breakを使用する基本的な記述方法は、下記になります。
[py]while 条件式:
#処理を中断する条件を分岐
if 条件式:
break
while文で実行する繰り返し処理
[/py]
基本的な記述方法では、while文を例にしましたが、for文でも基本的には同じでループ処理の中でif文で条件を分岐してbreakを入れてループ処理を抜けます。
breakの使用例
では、breakはどういった使い方をするのでしょうか?
以下に、breakの使用例を記載しました。
[py]#whileの条件判定に使用する変数を準備
while_count = 1
#while文でループ処理を実行
while while_count == 10:
#ループ処理で特定の値でbreakする
if while_count == 6:
print("ループ処理を抜けます。")
break
print("ループ回数:" + str(while_count) + "回目")
while_count = while_count + 1
#実行結果
ループ回数:1回目
ループ回数:2回目
ループ回数:3回目
ループ回数:4回目
ループ回数:5回目
ループ処理を抜けます。
実行結果からわかるように、if文の条件分岐によってwhile_countが6でbreak処理が実行されていることがわかります。
ループ処理のブロックから抜けている為、6以降のprint出力がされていません。
未経験でも確実にプログラミングスキルを身につけられる!
【DMM WEBCAMP】では、専属コーチが卒業まで伴走します!
✔短期間で効率的にプログラミングスキルを身につけたい
✔プログラミングを独学で進めていくのが不安
✔家での時間を有効に使ってスキルアップがしたい
といった方におすすめです!
\実践的なスキルが身に付くカリキュラム/
continueとは
breakとよく比較されることが多いのが、「continue」です。
continueとは、主にループ内で使用する構文のこと。
残りの処理をスキップし、次のループ処理に移りたいときに使われます。
「ブロックの先頭に戻って処理を続ける」とイメージするとわかりやすいでしょう。
continueとbreakの違い
continueとbreakの大きな違いは、
breakはループ処理のブロックから抜けますが、continueはループ処理の先頭に戻って継続する機能を持ちます。
つまり、continueはループ処理をスキップし、breakはループ処理を止めるイメージです。
さらに理解を深めるためにも、continueとbreakの違いがわかる使用例を見てみましょう。
上述した「breakの使用例」でご紹介したコードをベースに、breakからcontinueに変更してその違いを見ていただきます。
都合上初期値などが少し変わりますので、変更点に関しましては「#のメモ」をご参照ください。
#whileの条件判定に使用する変数を準備
#初期値を変更
#while_count = 1
while_count = 0
#while文でループ処理を実行
#カウント増加位置変更により条件式を変更
#while while_count = 10: ←上記break例のときのコード
while while_count = 10
#カウント増加位置変更
while_count = while_count + 1
#ループ処理で特定の値でcontinueする
if while_count == 6:
”’
print("ループ処理を抜けます。")
break
breakからcontinueに変更
”’
continue
print("ループ回数:" + str(while_count) + "回目")
#無限ループを回避する為、位置変更
#while_count = while_count + 1
#実行結果
ループ回数:1回目
ループ回数:2回目
ループ回数:3回目
ループ回数:4回目
ループ回数:5回目
ループ回数:7回目
ループ回数:8回目
ループ回数:9回目
ループ回数:10回目
実行結果からbreakの時には「ループ回数:6回目」以降は出力されることはありませんでしたが、continueの場合は現在の繰り返しを先頭に戻す処理の為、「ループ回数:6回目」だけが出力されずに「ループ回数:7回目」以降は出力されます。
またbreakの場合は、無限ループにならない場合もcontinueでは無限ループになってしまう可能性がある為、切り替える場合は注意が必要です。
今回の例の場合、while_count = while_count + 1がcontinueの後にあった場合、6に永遠に1が足されず、ループとなってしまいます。
2重などの多重ループを抜ける
Pythonではループ処理の中でループ処理が入れ子されている2重ループや多重ループの場合、一気に抜け出す方法がありません。
その為、必要に応じてbreakをループ分準備しなければ抜け出すことができません。
2重ループを抜ける記述方法
2重ループなどの多重ループを抜ける場合の基本的な記述方法は、下記になります。
[py]for 変数 in range():
for 変数 in range():
if 抜け出す為の条件式:
break
break
[/py]
上記のようにループ処理の数に合わせてbreakをすることで、一気に抜け出すことができます。
2重ループを抜ける使用例
2重ループを抜ける使用例についても見ておきましょう。
breakで2重ループを抜ける場合の使用例は、以下の通りです。
[py]#親ループ
for tmp in range(10):
#子ループ
for tmp2 in range(10):
#ループ回数がわかるように出力
print(tmp,tmp2)
#子ループのカウントが5になるとbreakで抜ける
if tmp2==5:
print("子ループから抜ける")
break
#子ループから抜けて親ループから抜ける為のbreak
print("親ループから抜ける")
break
#実行結果
0 0
0 1
0 2
0 3
0 4
0 5
子ループから抜ける
親ループから抜ける
実行結果から子ループをbreakで抜け出し、親ループもbreakで抜け出せていることがわかります。
もし親ループ側のbreakがなければ、子ループが0~5までの出力を親ループ回数分出力することになってしまいます。
【DMM WEBCAMP】は受講生の97%が未経験からのスタート!
充実のサポート体制で、プログラミングスキルを確実に身につけられます!
✔一人ひとりに合わせた学習計画で進められるため、仕事や学校と両立できる
✔未経験者のために開発された実践的なカリキュラムを用意
✔︎専属コーチが卒業まで学習をサポート
\目的別で選べる3つのコース/
break以外のループを終了させる方法について
break以外にもPythonにはループを抜け出す方法はいくつかあります。
詳細については割愛しますが、主な動作と使用例についてそれぞれ解説をしていきます。
returnついて
returnは、自作した関数から値を返す場合に使用されます。
特性上returnで値を返した後はそれ以降の関数の処理は終了する為、ループ内で使用する場合は関数ごと終了するのでループ処理が終了することになります。
outsideエラーについて
returnは関数内でしか使用できないことはご説明しましたが、もし関数内以外で使用した場合はoutsideエラーになってしまいます。
outsideエラーが発生した場合は、関数内でreturnを使用しているか確認することをおすすめします。
returnの使用例
関数内でループ処理を抜ける為に、returnを使用する場合の使用例は以下になります。
[py]#関数を宣言
def sample():
#for文の繰り返し処理
for tmp in range(10):
#if文で条件分岐をしてreturnで返す
if tmp==5:
return
print(tmp)
[/py]
上記使用例の関数を呼び出すことで、tmpが5のタイミングでreturnで関数が終了する為、ループ処理もその時に終了することになります。
exitについて
sysライブラリのexitを使用するとプログラムを終了させることが出来ます。
ループ処理だけを終了させる訳ではありませんが、エラーが発生した場合など正しく処理が出来ない場合はexitでループ処理を終了するようにコーディングする場合があります。
exitの使用例
exitの使用例を見てみましょう。
[py]#sysライブラリのインポート
import sys
#繰り返し処理
for tmp in range(5):
#3度目の処理でプログラムを終了させる)
if tmp == 3:
print("終了します")
sys.exit()
print(str(tmp + 1) + "回実行しました")
#実行結果
1回実行しました
2回実行しました
3回実行しました
終了します
実行結果からループ処理が終了したことがわかります。
しかしこれはbreakと違ってループ処理だけでなく、プログラム自体を終了させる為、注意が必要です。
例外処理tryについて
詳細は別の機会のご紹介しますが、例外処理のtryを使用することでもループ処理から抜け出すことが可能です。
しかし無限ループなどに対応する場合は、意図的にエラーを発生させるraiseと合わせて使用することになります。
例外処理について学習が終了した方は、腕試しも兼ねてループ処理を抜けるための例外処理にチャレンジしていただければと思います。
breakを理解してプログラミングの効率アップを図ろう!
今回は、Pythonのループ処理から抜け出す「break」についてご紹介しました。
for文やwhile文のループ処理をプログラミングで実装する場合、必ずと言っていいほどbreakは必要になるので確実に習得することをおすすめします。
また、break以外のループ処理を抜ける方法についても習得し、その時々にあった対応を行えるようになることが重要です。