プログラミングをしていると、こんな場面に出会うことがあります:
「このデータの時だけ、処理をスキップしたい」
「ループを完全に止める必要はないけれど、一部だけ飛ばしたい」
そんなときに便利なのが、Pythonのcontinue文です。
この記事では、Python初心者の方でも理解できるように:
- continue文の基本的な仕組み
- breakとの明確な違い
- 実際に役立つ使用例
- よくある間違いと正しい書き方
これらを、具体的なサンプルコードと一緒に詳しく解説していきます。
continue文とは何か?|「今回だけスキップ」する命令

continue文とは、ループ処理の途中で今回の繰り返し処理だけをスキップして、次の繰り返しに進むための命令です。
基本的な動作イメージ
1回目: 処理実行
2回目: continueでスキップ → 処理されない
3回目: 処理実行
4回目: 処理実行
基本的な書き方
for 変数 in データ:
if 条件:
continue # この時点で残りの処理をスキップ
# 条件を満たさない場合の処理
実際に動かしてみよう|基本例
例1:偶数だけをスキップして奇数のみ表示
print("1から5までの奇数のみ表示:")
for i in range(1, 6):
if i % 2 == 0: # 偶数かどうかチェック
continue # 偶数なら処理をスキップ
print(f"奇数: {i}")
print("処理完了")
実行結果:
1から5までの奇数のみ表示:
奇数: 1
奇数: 3
奇数: 5
処理完了
解説:
- i が 2, 4 の時は continue が実行される
- print文がスキップされて次のループへ進む
- i が 1, 3, 5 の時は正常に print文が実行される
while文でのcontinue活用法

例2:特定の数字をスキップしながらカウント
count = 0
print("1から5までカウント(3は飛ばす):")
while count < 5:
count = count + 1
if count == 3:
continue # 3の時だけスキップ
print(f"カウント: {count}")
print("カウント終了")
実行結果:
1から5までカウント(3は飛ばす):
カウント: 1
カウント: 2
カウント: 4
カウント: 5
カウント終了
重要なポイント: while文でcontinueを使う時は、ループの条件を変える処理(ここではcount = count + 1
)を continue の前に書きましょう。後に書くと無限ループになる危険があります。
breakとcontinueの違いを理解しよう
多くの初心者が混同する、breakとcontinueの違いを比較してみましょう。
命令 | 動作 | 結果 |
---|---|---|
continue | 今回の処理だけスキップ | ループは続行 |
break | ループ全体を終了 | ループから完全に抜ける |
比較例:continueの場合
print("continueの動作:")
for i in range(5):
if i == 2:
continue
print(f"数字: {i}")
print("ループ終了")
結果:
continueの動作:
数字: 0
数字: 1
数字: 3
数字: 4
ループ終了
比較例:breakの場合
print("breakの動作:")
for i in range(5):
if i == 2:
break
print(f"数字: {i}")
print("ループ終了")
結果:
breakの動作:
数字: 0
数字: 1
ループ終了
実用的な使用例

例3:空のデータや無効なデータを除外して処理
user_inputs = ["太郎", "", "花子", " ", "次郎", ""]
print("有効な名前のみ処理:")
for name in user_inputs:
# 空文字列や空白のみの文字列をスキップ
if name == "" or name.strip() == "":
continue
print(f"こんにちは、{name}さん!")
実行結果:
有効な名前のみ処理:
こんにちは、太郎さん!
こんにちは、花子さん!
こんにちは、次郎さん!
例4:特定の条件に合わないデータをスキップ
scores = [85, -5, 92, 150, 78, 0, 95]
print("正常な点数(0-100点)のみ処理:")
for score in scores:
# 0未満または100超過の点数をスキップ
if score < 0 or score > 100:
continue
# 合格判定
if score >= 80:
result = "合格"
else:
result = "不合格"
print(f"点数: {score}点 → {result}")
実行結果:
正常な点数(0-100点)のみ処理:
点数: 85点 → 合格
点数: 92点 → 合格
点数: 78点 → 不合格
点数: 0点 → 不合格
点数: 95点 → 合格
よくある間違いと対処法

間違い1:continue後のコードが実行されると思う
for i in range(3):
if i == 1:
continue
print("これは実行されません") # continueの後なので実行されない
print(f"数字: {i}")
正しい理解: continueが実行されると、それより後のコードは全てスキップされます。
間違い2:while文でのcontinue位置ミス
# 危険な例:無限ループになる可能性
count = 0
while count < 3:
if count == 1:
continue # ここでcontinueすると、count += 1が実行されない
count += 1 # この行が実行されずに無限ループ
print(count)
正しい書き方:
count = 0
while count < 3:
count += 1 # 先に条件を更新
if count == 2:
continue
print(count)
間違い3:ループの外でcontinueを使う
# これはエラーになります
if True:
continue # ループの中でないとcontinueは使えない
応用テクニック:複数条件でのcontinue

例5:複数の条件でスキップする場合
products = [
{"name": "りんご", "price": 100, "stock": 5},
{"name": "みかん", "price": 0, "stock": 10}, # 価格が0
{"name": "バナナ", "price": 150, "stock": 0}, # 在庫が0
{"name": "ぶどう", "price": 300, "stock": 3},
]
print("販売可能な商品:")
for product in products:
# 価格が0または在庫が0の商品をスキップ
if product["price"] <= 0 or product["stock"] <= 0:
continue
print(f"{product['name']}: {product['price']}円(在庫{product['stock']}個)")
実行結果:
販売可能な商品:
りんご: 100円(在庫5個)
ぶどう: 300円(在庫3個)
よくある質問(FAQ)
Q1:continueは必ずif文と一緒に使うの?
A1: 基本的にはそうです。
「特定の条件の時だけスキップしたい」という場面で使うため、if文との組み合わせが一般的です。
Q2:二重ループ(ネストしたループ)でcontinueを使うとどうなる?
A2: continueは最も内側のループにのみ影響します。
for i in range(3):
print(f"外側ループ: {i}")
for j in range(3):
if j == 1:
continue # 内側のループのみスキップ
print(f" 内側ループ: {j}")
Q3:for-else文でcontinueを使うとelseは実行される?
A3: はい、実行されます。continueはループを中断しないため、else文は正常に実行されます。
for i in range(3):
if i == 1:
continue
print(i)
else:
print("ループが正常に完了しました") # これは実行される
まとめ
Pythonのcontinue文は、ループ処理をより効率的で読みやすくするための重要な機能です。
ポイント:
- continueは「今回だけスキップ」、breakは「完全に終了」
- 不要なデータや無効なデータの除外に便利
- if文と組み合わせて条件付きでスキップ
- while文では条件変更処理の位置に注意
- ネストしたループでは最も内側のループのみに影響
コメント