2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python初学者向け】continueとbreakの違い

Last updated at Posted at 2023-06-11

本記事では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の基礎文法を解説しています。
よろしければご活用ください。

あわせて読みたい
資格を取得すると文法基礎を理解していることが証明できます。

出典

公式ドキュメント https://docs.python.org/ja/3.9/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?