Pythonのbreakとcontinueの違いとは?ループの制御方法をマスター
生徒
「Pythonでループの途中で止めたり、飛ばしたりする方法ってあるんですか?」
先生
「ありますよ。そのときに使うのがbreakとcontinueです。どちらもループの制御に使います。」
生徒
「どっちを使えばいいか迷いそうです…違いって何ですか?」
先生
「それでは、2つの違いや使い方を、やさしく順番に解説していきましょう!」
1. Pythonのループ制御とは?
ループ制御とは、繰り返し処理(for文やwhile文)の流れを、途中で止めたり、次の繰り返しに進めたりするための仕組みです。単に同じ処理を繰り返すだけでなく、状況に応じて動きを変えられるのがポイントです。
Pythonでは、主に次の2つの命令を使ってループを制御します。
break:ループそのものを途中で終了するcontinue:その回の処理をスキップして次のループへ進む
たとえば、「3になったら処理を止める」「特定の値のときだけ処理を飛ばす」といった制御が可能です。
for i in range(1, 6):
if i == 3:
continue # 3のときだけ処理を飛ばす
if i == 5:
break # 5になったらループを終了
print(i)
1
2
4
解説:i == 3のときはcontinueによってprintが実行されず、次の数字へ進みます。i == 5になるとbreakが実行され、ループ自体がそこで終わります。
このようにループ制御を使うと、必要な処理だけを効率よく実行できるようになります。
2. break文の使い方|ループを途中で終了する
break文は、繰り返し処理の途中で「ここまでで十分」「これ以上続ける必要がない」と判断したときに、ループそのものを終了させるための命令です。
条件に合った時点で処理を止められるので、無駄な繰り返しを減らせるのが大きな特徴です。
次の例では、果物の一覧を順番にチェックし、「みかん」が見つかった瞬間にループを終了しています。
fruits = ["りんご", "ばなな", "みかん", "ぶどう"]
for fruit in fruits:
if fruit == "みかん":
print("みかんを発見!")
break
print(fruit)
りんご
ばなな
みかんを発見!
解説:最初は「りんご」「ばなな」と順に表示されますが、「みかん」に当たった時点でbreakが実行されます。その結果、ループがそこで終わり、「ぶどう」は処理されません。
このようにbreak文は、「目的のデータが見つかったら終了する」「条件を満たしたら即座に抜ける」といった場面でよく使われます。
3. continue文の使い方|処理をスキップして次へ
continue文は、ループの途中で「この条件のときは今の処理を行わず、次の繰り返しに進みたい」という場合に使います。ループ自体は止めず、流れだけを一時的に飛ばすイメージです。
不要なデータや、条件に合わない値を読み飛ばしたいときに、とても便利な命令です。
例えば「みかん」だけを除外して、他の果物を表示したい場合は次のように書けます。
fruits = ["りんご", "ばなな", "みかん", "ぶどう"]
for fruit in fruits:
if fruit == "みかん":
continue
print(fruit)
りんご
ばなな
ぶどう
解説:ループ中で「みかん」に当たるとcontinueが実行され、その回のprint処理は行われません。そのまま次の果物へ進むため、「みかん」だけが表示されない結果になります。
このようにcontinue文を使うと、「特定の条件だけ処理したくない」といった場面を、シンプルに表現できます。
4. breakとcontinueの違いを比較しよう
違いを簡単に表にまとめると、以下のようになります。
| 文法 | 意味 | ループはどうなる? |
|---|---|---|
break |
ループを終了 | その場でループ全体が止まる |
continue |
1回スキップ | 次の繰り返しに進む |
breakはループそのものを終わらせるのに対して、continueは1回飛ばすだけというのが大きな違いです。
迷ったときは、「ループを終わらせたいならbreak」「ループは続けてその回だけ飛ばしたいならcontinue」と覚えるとスッキリします。
for i in range(1, 6):
if i == 3:
continue # 3だけ飛ばす(ループは続く)
if i == 5:
break # 5で終了(ループが止まる)
print(i)
1
2
4
解説:3のときはcontinueで表示を飛ばし、次の数字へ進みます。5になるとbreakでそこでループが終わるため、5は表示されません。
5. while文でも使える!breakとcontinueの活用
breakとcontinueは、while文でもまったく同じように使えます。
count = 0
while True:
count += 1
if count == 3:
continue
if count == 5:
break
print(count)
1
2
4
count == 3のときはスキップ、count == 5でループを終了しています。
6. 実用例:正解が出たら終了するクイズゲーム
以下は、正しい答えが出るまで繰り返すミニゲームです。breakで終了します。
answer = "Python"
while True:
guess = input("好きなプログラミング言語は?:")
if guess == answer:
print("正解です!")
break
else:
print("もう一度考えてみましょう。")
好きなプログラミング言語は?:Java
もう一度考えてみましょう。
好きなプログラミング言語は?:Python
正解です!
7. continueの実用例:偶数だけスキップする処理
continueを使えば、特定の条件に合うデータだけを処理できます。たとえば、奇数だけを表示する処理です。
for i in range(1, 6):
if i % 2 == 0:
continue
print(i)
1
3
5
i % 2 == 0は偶数を意味する条件です。それをcontinueでスキップしています。
まとめ
ここまで、Pythonの繰り返し処理で非常に重要な役割を持つbreakとcontinueについて、具体例や実際のコードを通して丁寧に学んできました。繰り返し処理はプログラミングの中でも特に利用頻度が高く、初心者の段階でしっかり理解しておくことで、後に複雑なロジックを扱う際に大きな助けになります。とくに、ループの途中で強制的に処理を終了させるか、それとも一時的に処理を飛ばして次へ進めるかという操作は、実際の開発の中でも頻繁に登場します。そのため、実務でも応用しやすい基礎として身につけておくことが重要です。
また、実際の例として紹介した果物リストの判定、数値の飛ばし処理、クイズ形式のループなどは日常的なプログラム構築でも非常に応用しやすいパターンばかりです。単純なループでも制御文を適切に組み合わせることで、高度な処理に発展させることが可能になります。今回の学習を通じて、ループ制御の仕組みや考え方に少しずつ慣れていけば、Pythonでのロジック構築がぐっと楽になります。特に、複数の条件を並列に扱う場合や、早期終了を含むアルゴリズムを作成する際には、自然なかたちで活用できる力が身につきます。
さらに、for文とwhile文の両方で同じように使用できる点は大きな魅力であり、状況に合わせて使い分ける柔軟性も生まれます。実用的なコードを書くための視点として、何を条件として区切りをつけるのか、どこで処理を続けるかといった考え方を明確にしておくと、後から見たときに分かりやすいコードになるだけでなく、バグの発生を防ぐという意味でも大きな効果があります。
以下に、今回学習した内容を振り返りつつ、簡単なサンプルコードを改めて掲載しておきます。何度か書いて手を動かし、自然に理解できる段階まで繰り返し確認してみてください。
サンプルプログラム(総まとめ)
fruits = ["りんご", "ばなな", "みかん", "ぶどう"]
print("=== breakの復習 ===")
for fruit in fruits:
if fruit == "みかん":
print("みかんを見つけたので終了します")
break
print(fruit)
print("=== continueの復習 ===")
for fruit in fruits:
if fruit == "ばなな":
continue
print(fruit)
print("=== 条件を複数扱う総合例 ===")
for i in range(1, 10):
if i % 3 == 0:
continue
if i == 8:
break
print(i)
このように、単純な条件分岐の組み合わせでも、breakとcontinueを使うことで印象的にロジックが整理され、読みやすく管理しやすいコードに育っていきます。実際のプログラムでも、検索処理、フィルタリング、バリデーション、ゲーム処理、データ処理など、幅広い場面で活用されます。ループを柔軟にコントロールする力を身につけることは、Pythonを深く理解するための大きな一歩になります。
生徒
「きょうはループの制御についてたくさん学びましたけれど、実際の開発でもこんなに使うんですね。」
先生
「もちろんです。特にデータを順番に処理するような場面では頻繁に登場しますよ。それぞれの動きを理解していれば、どんな場面でも応用できます。」
生徒
「breakは途中で終わらせる、continueは一回飛ばす、という違いがようやくはっきり分かりました。」
先生
「その理解がとても大切です。その上で、複数の条件を組み合わせたり、while文と組み合わせたりすると、もっと幅広い処理ができます。」
生徒
「次はもっと複雑な処理にも挑戦できそうな気がしてきました!」
先生
「その調子です。繰り返し練習すれば、自然と身につきますよ。」