Pythonでfor文やwhile文を書いていると、「ある条件になったらループを止めたい」「特定のときだけ処理を飛ばしたい」と思うことはありませんか?そんなときに活躍するのがbreak文とcontinue文です。
この2つを使いこなせるようになると、ループ処理を自分の思いどおりにコントロールできるようになり、コードがぐっと読みやすく効率的になります。この記事では、break文とcontinue文の違いから実践的な使い方まで、初心者の方にも分かるように具体的なコードとあわせて丁寧に解説していきます。
コンテンツ
break文とcontinue文とは?
break文とcontinue文は、どちらもfor文やwhile文などのループ処理の流れを制御するための命令です。名前は似ていますが、動きはまったく異なります。まずはそれぞれの役割をざっくりイメージでつかんでおきましょう。
- break文:ループそのものを途中で完全に抜ける(それ以降は繰り返さない)
- continue文:その回の処理だけをスキップして、次の繰り返しに進む
「break=ループを終わらせる」「continue=今回だけ飛ばす」と覚えておくと混乱しにくいです。ループの基本であるfor文やwhile文がまだあいまいな方は、先にwhile文の基礎を解説した記事やfor文・range関数の使い方をまとめた記事に目を通しておくと、この記事の内容がよりスムーズに理解できます。
break文の使い方:ループを途中で抜ける
break文は、条件を満たしたときにループを終了させたい場面で使います。たとえば1から順番に数えていって、5になったらそこでやめる、という処理は次のように書けます。
for i in range(1, 11):
if i == 5:
break
print(i)
# 実行結果
# 1
# 2
# 3
# 4iが5になった瞬間にbreakが実行され、print(i)にたどり着く前にループ全体が終了します。そのため画面には1から4までしか表示されません。「目的のものが見つかったら、それ以上探す必要はない」といったケースでとても便利です。
continue文の使い方:処理をスキップして次へ
continue文は、条件を満たしたときにその回の処理だけを飛ばして、ループ自体は続けたい場面で使います。次のコードは、1から10までのうち偶数を飛ばして奇数だけを表示する例です。
for i in range(1, 11):
if i % 2 == 0:
continue
print(i)
# 実行結果
# 1
# 3
# 5
# 7
# 9iが偶数(2で割った余りが0)のときはcontinueが実行され、print(i)を飛ばして次のループに進みます。breakと違ってループは最後まで続く点が大きな違いです。「特定のデータだけ除外して処理したい」ときの定番テクニックです。
実践例:リストの中から目的のデータを探す
break文がよく使われるのが、リストの中から特定の要素を探すケースです。見つかった時点でループを抜ければ、無駄な繰り返しを省けます。ここではfor文とセットで使えるfor-else構文もあわせて紹介します。
fruits = ["りんご", "ばなな", "みかん", "ぶどう"]
target = "みかん"
for fruit in fruits:
if fruit == target:
print(target + "が見つかりました!")
break
else:
print(target + "は見つかりませんでした")
# 実行結果
# みかんが見つかりました!for文のelseは、ループがbreakされずに最後まで回りきったときだけ実行される少し特殊な仕組みです。今回は「みかん」が見つかってbreakされたので、elseのメッセージは表示されません。リストを扱う処理に慣れてきたら、for文で合計を求める方法の記事もあわせて読むと、ループの応用力がさらに高まります。
while文でのbreak:無限ループを安全に止める
break文はwhile文と組み合わせるとさらに真価を発揮します。「while True」と書くと本来は永遠に終わらない無限ループになりますが、breakを使えば好きなタイミングで抜け出せます。
count = 0
while True:
count += 1
if count > 3:
break
print("処理" + str(count) + "回目")
# 実行結果
# 処理1回目
# 処理2回目
# 処理3回目countが3を超えた時点でbreakが実行され、ループが終了します。ユーザーの入力を受け付け続けて「終了」と入力されたら止める、といった処理でよく使われるパターンです。
breakとcontinueを組み合わせる
2つを同時に使うこともできます。次のコードは「偶数はスキップし(continue)、15を超えたら終了する(break)」という条件で奇数を表示する例です。
for num in range(1, 21):
if num % 2 == 0:
continue
if num > 15:
break
print(num)
# 実行結果
# 1
# 3
# 5
# 7
# 9
# 11
# 13
# 15偶数のときはcontinueで飛ばし、奇数でも15を超えたらbreakで終了しています。このように条件を組み合わせることで、複雑なループ制御もシンプルに書けるようになります。
よくある間違いと注意点
- break・continueはループの中でしか使えない:for文やwhile文の外で使うとエラーになります。
- ネストしたループでは内側のループにだけ効く:二重ループの内側でbreakしても、外側のループは止まりません。
- continueの多用は読みにくさにつながることも:条件が複雑になりすぎたら、if文で書き換えられないか検討してみましょう。
とくにネスト(入れ子)したループでの挙動は初心者がつまずきやすいポイントです。「どのループを抜けているのか」を常に意識すると、バグを防ぎやすくなります。
もっと効率的にPythonを学びたい人へ
break文やcontinue文のようなループ制御は、独学でも理解できますが、「実際のプログラムでどう組み合わせるのか」までを身につけようとすると、独学ではなかなか手応えをつかみにくいものです。分からないところをその場で質問できる環境があると、学習スピードは大きく変わります。
もし本気でPythonを習得して仕事につなげたいなら、マンツーマン指導で未経験からPythonを学べるプログラミングスクールを検討してみるのもおすすめです。プロの講師に質問しながら進められるうえ、転職サポートが用意されているスクールも多く、まずは無料カウンセリングで学習プランを相談してみると自分に合うかどうかが見えてきます。
※本記事には広告(アフィリエイトリンク)を含みます。
Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】![]()
まとめ
今回はPythonのbreak文とcontinue文について解説しました。最後に要点を振り返っておきましょう。
- break文はループを途中で完全に抜けるための命令
- continue文はその回の処理だけを飛ばして次の繰り返しに進む命令
- リストからの検索や「while True」の無限ループ制御でbreakが活躍する
- 特定のデータを除外したいときはcontinueが便利
- break・continueはループの中でのみ使え、ネストでは内側のループにだけ効く
break文とcontinue文を使いこなせるようになると、ループ処理の表現力が一気に広がります。まずは今回のコードを実際に書き換えて動かしてみて、それぞれの動きの違いを体で覚えていきましょう。
ナノトイラボ 