本記事ではPythonで使うcontinueとbreakの違いについて解説をします。
そもそも用途が違うので、違いを比べられてもと思う方もいるかもしれませんが、Twitterでこの辺の理解が曖昧だという声をいただいたので記事を書くことにしました。
初学者の方への参考になれば幸いです。
そもそもどこで使うのか?
ループ処理(for文、while文)内で使用する。
どんな時に使うのか?
continueは値がxの時はループに戻ってねという感じ
breakは値がxになったらループを抜けてねという感じ
実際にコードを見たほうがわかりやすいと思うので、以下にコードを書いていきます。
まずはcontinueから
continue
簡単なfor文を使ってcontinueについて確認をします。
>>> for i in range(1, 6):
... if i == 3:
... continue
... print(i, end = ",")
...
1,2,4,5,
i == 3 のときにcontinueが実行されますが、continueは残りの処理をスキップして
次の繰り返し処理に移ります。
よって、print(i, end = ",")は実行されないため、出力結果は 1,2,4,5,となります。
while文についても同様です。
>>> num = 0
>>> while num < 5:
... num += 1
... if num == 3:
... continue
... print(num, end = ",")
...
1,2,4,5,
続いてbreakについてみていきます。
break
こちらも同じように簡単なfor文を使ってbreakについて確認をします。
>>> for i in range(1, 6):
... if i == 3:
... break
... print(i, end = ",")
...
1,2,
i == 3 のときにbreakが実行されますが、breakは文を囲うもっとも内側のforまたはwhileのループから抜けるため、i == 4 以降は実行されません。よって出力結果は 1,2,となります。
while文についても同様です。
>>> num = 0
>>> while num < 5:
... num += 1
... if num ==3:
... break
... print(num, end = ",")
...
1,2,
else節がある場合のcontinueとbreak
ループ文はelse節を持つことができます。for文では反復させる要素を使い切ったとき、while文では条件が偽になったときに実行されます。
結論から言うと、continueはelse節が実行されますが、breakは実行されません。
for文のelse節
for文のelse節は以下のような実行結果となります。
>>> for i in range(1, 6):
... print(i, end = ",")
... else:
... print("\nelse節が実行されました")
...
1,2,3,4,5,
else節が実行されました
continue有り
>>> for i in range(1, 6):
... if i == 3:
... continue
... print(i, end = ",")
... else:
... print("\nelse節が実行されました")
...
1,2,4,5,
else節が実行されました
break有り
>>> for i in range(1, 6):
... if i == 3:
... break
... print(i, end = ",")
... else:
... print("\nelse節が実行されました")
...
1,2,
breakは途中でループ処理を抜けるため、else節が実行されません。
while文のelse節
while文のelse節は以下のような実行結果となります。
>>> num = 0
>>> while num < 5:
... num += 1
... print(num, end = ",")
... else:
... print("\nelse節が実行されました")
...
1,2,3,4,5,
else節が実行されました
continue有り
>>> num = 0
>>> while num < 5:
... num += 1
... if num == 3:
... continue
... print(num, end = ",")
... else:
... print("\nelse節が実行されました")
...
1,2,4,5,
else節が実行されました
break有り
>>> num = 0
>>> while num < 5:
... num += 1
... if num == 3:
... break
... print(num, end = ",")
... else:
... print("\nelse節が実行されました")
...
1,2,
こちらも同様にelse節は実行されません。
おわりに
continueとbreakの違いについて解説をしました。
Pythonチュートリアル(公式ドキュメント)を使ってPythonの基礎文法を解説しています。
よろしければご活用ください。
あわせて読みたい
資格を取得すると文法基礎を理解していることが証明できます。