Pythonのfor文を勉強していて、breakとcontinueの使い方がよくわからなくなってきたので、自分なりに整理しておきます。
if文と一緒に使われることが多かったので、ifから抜けるのかと勘違いしてしまうことがあるので、注意していきたいです。
breakとは?
ループの途中で終わらせるときに使う。
for i in range(5):
if i == 3:
break
print(i)
出力
0
1
2
i が 3 のときに break されて、ループが終了する。
continueとは?
今回の処理だけスキップして次のループへ進む。
for i in range(5):
if i == 3:
continue
print(i)
出力
0
1
2
4
i が 3 のときだけ print を飛ばしてる。
ifとbreak(またはcontinue)の関係
最初は if を抜ける命令だと思っていたけど、実際は for や while に対して動く。
だから if の中に書いてあっても、実際にはループを止めたりスキップしたりしてる。
breakとcontinueの違い
命令 | 意味 | ループは続く? | よく使う場面 |
---|---|---|---|
break | ループを終了する | ❌ 終わる | 条件を満たしたら止めたいとき |
continue | 今回の処理だけスキップする | ✅ 続く | 条件に合うときだけ飛ばしたいとき |
for-else文について
ループの中で break が使われなかったときに else が実行される構文。
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n // x)
break
else:
print(n, 'is a prime number')
出力
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
for の中で break されなかったときに else が動いてる。
素数のときだけ else が実行されるようになっている。
覚え方のメモ
- break:ループを終わらせる
- continue:その回だけスキップする
- if は条件を判断してるだけで、breakやcontinueの効果には関係ない
おわりに
ちゃんと理解しておかないと毎回混乱しそうだったので、自分があとから見てわかるようにまとめてみました。今後も何度か使いながら慣れていきたいと思います。