continue文 - 次のループへスキップ
目次
このレッスンで学ぶこと
- continue文とは何か
- continue文の使い方
- breakとcontinueの違い
- continue文の実用例
continue文とは
continue文は、ループ内の残りの処理をスキップして、次の繰り返しに進む制御構文です。特定の条件を満たした場合だけ処理をスキップしたい場合に使用されます。breakとは異なり、ループ自体は継続されます。
continue文の基本構造
Pythonfor 変数 in コレクション: if スキップ条件: continue # 残りの処理をスキップ 処理 while 条件式: if スキップ条件: continue # 残りの処理をスキップ 処理
continue文の構成要素
| 要素 | 説明 | 例 |
|---|---|---|
continue | スキップするキーワード | 必須 |
| 配置 | ループの中(if文の中) | 通常はif文の中で使用 |
| 効果 | 残りの処理をスキップ | continueの後は実行されない |
| ループ継続 | ループ自体は続く | 次の繰り返しに進む |
continue文の特徴
- ループ内の残りの処理だけをスキップ(ループは継続)
- 複数の条件チェックでネストを減らせる
- while文では無限ループのリスクに注意
- 特定条件を除外する処理に便利
簡単な例
Python# 奇数をスキップして偶数だけ表示 for i in range(1, 6): if i % 2 != 0: continue # 奇数はスキップ print(i) # 実行結果: # 2 # 4 # 負の数をスキップして正の数だけ処理 numbers = [10, -5, 20, 0, 15] for num in numbers: if num <= 0: continue # 0以下はスキップ print(f"正の数: {num}")
なぜcontinue文が必要なのか?
ループ処理で、特定の条件のときだけ処理をスキップしたい場合があります。
Python# 偶数だけ表示(奇数はスキップ) for i in range(1, 11): if i % 2 != 0: continue # 奇数のときは残りの処理をスキップ print(f"{i}は偶数です")
実行結果:
2は偶数です
4は偶数です
6は偶数です
8は偶数です
10は偶数です
continue文を使うことで、条件に合わない場合だけスキップできます。
💡 豆知識: continue文は英語で「続ける」という意味です。「今回の処理は飛ばして、次の繰り返しを続ける」という動作を表しています。
continue文の基本
機能: ループの残りの処理をスキップして、次の繰り返しに進みます。
書き方:
Pythonfor item in items: if スキップ条件: continue # 残りの処理をスキップ 処理 while 条件: if スキップ条件: continue # 残りの処理をスキップ 処理
用途: 特定条件の除外、無効なデータのスキップ、エラー回避
注意点:
- continue以降の処理は実行されない
- ループ自体は続く(breakとは違う)
- while文では無限ループに注意
Python# 基本的な使い方 for i in range(5): if i == 2: continue # i==2のときスキップ print(i)
実行結果:
0
1
3
4
breakとcontinueの違い
比較
Pythonprint("=== break ===") for i in range(5): if i == 2: break # ループを抜ける print(i) print("\n=== continue ===") for i in range(5): if i == 2: continue # 2だけスキップ print(i)
実行結果:
=== break ===
0
1
=== continue ===
0
1
3
4
違い:
- break: ループを完全に終了
- continue: 今回だけスキップして次へ
for文でのcontinue
例1: 奇数をスキップ
Python# 1から10までの偶数だけ表示 for i in range(1, 11): if i % 2 != 0: continue # 奇数はスキップ print(i)
実行結果:
2
4
6
8
10
例2: 特定の値を除外
Pythonfruits = ["りんご", "バナナ", "オレンジ", "バナナ", "ぶどう"] print("バナナ以外の果物:") for fruit in fruits: if fruit == "バナナ": continue # バナナはスキップ print(f"- {fruit}")
実行結果:
バナナ以外の果物:
- りんご
- オレンジ
- ぶどう
例3: 条件に合うもののみ処理
Pythonscores = [85, 45, 92, 38, 76, 55, 90] print("合格者(60点以上):") for score in scores: if score < 60: continue # 60点未満はスキップ print(f"{score}点")
実行結果:
合格者(60点以上):
85点
92点
76点
90点
while文でのcontinue
例1: 特定条件のスキップ
機能: while文でcontinueを使う場合、カウンタの更新位置に注意が必要です。
書き方:
Pythonwhile 条件: カウンタ更新 # continueより前に配置 if スキップ条件: continue 処理
用途: 条件付きスキップ、エラー時の次処理
注意点: カウンタ更新をcontinueより前に書く(無限ループ防止)
Pythoncount = 0 while count < 10: count += 1 # 重要: continueより前で更新 if count % 2 == 0: continue # 偶数はスキップ print(count)
実行結果:
1
3
5
7
9
例2: 無効な入力のスキップ
Python# 正の数だけ処理(0や負の数はスキップ) numbers = [10, -5, 20, 0, 15, -3, 8] total = 0 for number in numbers: if number <= 0: continue # 0以下はスキップ total += number print(f"{number}を加算: 合計 = {total}") print(f"\n最終合計: {total}")
実行結果:
10を加算: 合計 = 10
20を加算: 合計 = 30
15を加算: 合計 = 45
8を加算: 合計 = 53
最終合計: 53
具体例
例1: ファイルフィルタリング
Pythonfiles = ["image1.png", "document.txt", "photo.jpg", "data.csv", "picture.png"] print("画像ファイル(.png):") for file in files: if not file.endswith(".png"): continue # .png以外はスキップ print(f"- {file}")
実行結果:
画像ファイル(.png):
- image1.png
- picture.png
例2: 成績処理
Pythonstudents = [ {"name": "田中", "score": 85}, {"name": "佐藤", "score": 45}, {"name": "鈴木", "score": 92}, {"name": "高橋", "score": 38}, {"name": "伊藤", "score": 76} ] print("=== 合格者リスト(60点以上)===") for student in students: if student["score"] < 60: continue # 不合格者はスキップ print(f"{student['name']}: {student['score']}点")
実行結果:
=== 合格者リスト(60点以上)===
田中: 85点
鈴木: 92点
伊藤: 76点
例3: データクリーニング
Python# 空文字列や空白だけの要素をスキップ data = ["Python", "", " ", "Java", " ", "C++", ""] print("有効なデータ:") for item in data: if not item.strip(): # 空または空白のみ continue print(f"- {item}")
実行結果:
有効なデータ:
- Python
- Java
- C++
例4: 数値の検証
Python# 範囲外の値をスキップ temperatures = [22, 45, 18, -5, 30, 100, 25, -10, 28] print("有効な気温(0〜40度):") for temp in temperatures: if temp < 0 or temp > 40: continue # 範囲外はスキップ print(f"{temp}度")
実行結果:
有効な気温(0〜40度):
22度
18度
30度
25度
28度
例5: 割り算のゼロ除外
Pythonnumbers = [10, 5, 0, 20, 0, 8, 15] divisor = 100 print("=== 割り算結果 ===") for number in numbers: if number == 0: print(f"{number}: スキップ(0では割れません)") continue result = divisor / number print(f"{divisor} ÷ {number} = {result:.2f}")
実行結果:
=== 割り算結果 ===
100 ÷ 10 = 10.00
100 ÷ 5 = 20.00
0: スキップ(0では割れません)
100 ÷ 20 = 5.00
0: スキップ(0では割れません)
100 ÷ 8 = 12.50
100 ÷ 15 = 6.67
例6: 複数条件のスキップ
Python# 3の倍数と5の倍数をスキップ print("3の倍数と5の倍数以外:") for i in range(1, 21): if i % 3 == 0: continue # 3の倍数はスキップ if i % 5 == 0: continue # 5の倍数はスキップ print(i, end=" ") print()
実行結果:
3の倍数と5の倍数以外:
1 2 4 7 8 11 13 14 16 17 19
continueの応用パターン
パターン1: 早期スキップ
Python# 条件チェックを先に行う users = [ {"name": "太郎", "age": 25, "active": True}, {"name": "花子", "age": 17, "active": True}, {"name": "次郎", "age": 30, "active": False}, {"name": "三郎", "age": 22, "active": True} ] print("=== アクティブな成人ユーザー ===") for user in users: if not user["active"]: continue # 非アクティブはスキップ if user["age"] < 18: continue # 未成年はスキップ print(f"{user['name']}({user['age']}歳)")
実行結果:
=== アクティブな成人ユーザー ===
太郎(25歳)
三郎(22歳)
パターン2: ネストの削減
Python# continueを使わない場合(ネストが深い) for i in range(5): if i % 2 == 0: if i > 0: print(f"{i}は正の偶数です") # continueを使う場合(フラット) for i in range(5): if i % 2 != 0: continue # 奇数はスキップ if i == 0: continue # 0もスキップ print(f"{i}は正の偶数です")
実行結果:
2は正の偶数です
4は正の偶数です
よくある間違い
間違い1: while文での無限ループ
Python# 危険: カウンタ更新がcontinueの後 count = 0 while count < 5: if count == 2: continue # count += 1 がスキップされる print(count) count += 1 # ここに到達しない # 正しい: カウンタ更新を先に count = 0 while count < 5: count += 1 # continueより前 if count == 2: continue print(count)
間違い2: continueの位置
Python# continueの後の処理は実行されない for i in range(5): if i == 2: continue print("これは実行されない") # 到達不可能 print(i) # 正しい for i in range(5): if i == 2: continue # ここでスキップ print(i) # i==2以外で実行される
間違い3: 過度な使用
Python# 読みにくい例 for i in range(10): if i % 2 == 0: continue if i % 3 == 0: continue if i > 7: continue print(i) # よりわかりやすい for i in range(10): if i % 2 != 0 and i % 3 != 0 and i <= 7: print(i)
間違い4: breakとの混同
Python# continueはループを続ける for i in range(5): if i == 2: continue # 2だけスキップ print(i) # 出力: 0, 1, 3, 4 # breakはループを終了 for i in range(5): if i == 2: break # 2で終了 print(i) # 出力: 0, 1
間違い5: 不要なcontinue
Python# 不要な例 for i in range(5): if i % 2 == 0: print(f"{i}は偶数") else: continue # これは不要 # シンプルに for i in range(5): if i % 2 == 0: print(f"{i}は偶数")
練習問題
問題1(基礎)⭐☆☆
1から10までの数値のうち、5の倍数以外を表示してください。
💡 ヒント
5の倍数のときcontinueでスキップします。
✅ 解答例
Pythonfor i in range(1, 11): if i % 5 == 0: continue # 5の倍数はスキップ print(i)
実行結果:
1
2
3
4
6
7
8
9
解説: 5と10(5の倍数)がスキップされています。
問題2(基礎)⭐☆☆
リスト [1, -2, 3, -4, 5, -6] から正の数だけを表示してください。
💡 ヒント
負の数のときcontinueでスキップします。
✅ 解答例
Pythonnumbers = [1, -2, 3, -4, 5, -6] for number in numbers: if number < 0: continue # 負の数はスキップ print(number)
実行結果:
1
3
5
解説: 負の数(-2, -4, -6)がスキップされ、正の数だけ表示されています。
問題3(応用)⭐⭐☆
1から20までの数値のうち、3の倍数でも5の倍数でもない数を表示してください。
💡 ヒント
3の倍数と5の倍数の両方でcontinueします。
✅ 解答例
Pythonfor i in range(1, 21): if i % 3 == 0: continue # 3の倍数はスキップ if i % 5 == 0: continue # 5の倍数はスキップ print(i, end=" ") print()
実行結果:
1 2 4 7 8 11 13 14 16 17 19
解説: 3の倍数(3,6,9,12,15,18)と5の倍数(5,10,15,20)がスキップされています。
まとめ
このレッスンでは、continue文で特定条件の処理をスキップする方法を学びました。
- continue文は、現在の周回の残り処理を飛ばして次の反復へ進みます。
- 除外条件を先に書くことで、ループ本体を読みやすく整理できます。
- breakとの違い(ループ継続か終了か)を使い分けられるようになりました。
- while文で使う場合は、更新処理の位置に注意する必要があります。
- スキップ条件を明確化すると、意図しない抜け漏れを防げます。
continue文 - 次のループへスキップ
目次
このレッスンで学ぶこと
- continue文とは何か
- continue文の使い方
- breakとcontinueの違い
- continue文の実用例
continue文とは
continue文は、ループ内の残りの処理をスキップして、次の繰り返しに進む制御構文です。特定の条件を満たした場合だけ処理をスキップしたい場合に使用されます。breakとは異なり、ループ自体は継続されます。
continue文の基本構造
Pythonfor 変数 in コレクション: if スキップ条件: continue # 残りの処理をスキップ 処理 while 条件式: if スキップ条件: continue # 残りの処理をスキップ 処理
continue文の構成要素
| 要素 | 説明 | 例 |
|---|---|---|
continue | スキップするキーワード | 必須 |
| 配置 | ループの中(if文の中) | 通常はif文の中で使用 |
| 効果 | 残りの処理をスキップ | continueの後は実行されない |
| ループ継続 | ループ自体は続く | 次の繰り返しに進む |
continue文の特徴
- ループ内の残りの処理だけをスキップ(ループは継続)
- 複数の条件チェックでネストを減らせる
- while文では無限ループのリスクに注意
- 特定条件を除外する処理に便利
簡単な例
Python# 奇数をスキップして偶数だけ表示 for i in range(1, 6): if i % 2 != 0: continue # 奇数はスキップ print(i) # 実行結果: # 2 # 4 # 負の数をスキップして正の数だけ処理 numbers = [10, -5, 20, 0, 15] for num in numbers: if num <= 0: continue # 0以下はスキップ print(f"正の数: {num}")
なぜcontinue文が必要なのか?
ループ処理で、特定の条件のときだけ処理をスキップしたい場合があります。
Python# 偶数だけ表示(奇数はスキップ) for i in range(1, 11): if i % 2 != 0: continue # 奇数のときは残りの処理をスキップ print(f"{i}は偶数です")
実行結果:
2は偶数です
4は偶数です
6は偶数です
8は偶数です
10は偶数です
continue文を使うことで、条件に合わない場合だけスキップできます。
💡 豆知識: continue文は英語で「続ける」という意味です。「今回の処理は飛ばして、次の繰り返しを続ける」という動作を表しています。
continue文の基本
機能: ループの残りの処理をスキップして、次の繰り返しに進みます。
書き方:
Pythonfor item in items: if スキップ条件: continue # 残りの処理をスキップ 処理 while 条件: if スキップ条件: continue # 残りの処理をスキップ 処理
用途: 特定条件の除外、無効なデータのスキップ、エラー回避
注意点:
- continue以降の処理は実行されない
- ループ自体は続く(breakとは違う)
- while文では無限ループに注意
Python# 基本的な使い方 for i in range(5): if i == 2: continue # i==2のときスキップ print(i)
実行結果:
0
1
3
4
breakとcontinueの違い
比較
Pythonprint("=== break ===") for i in range(5): if i == 2: break # ループを抜ける print(i) print("\n=== continue ===") for i in range(5): if i == 2: continue # 2だけスキップ print(i)
実行結果:
=== break ===
0
1
=== continue ===
0
1
3
4
違い:
- break: ループを完全に終了
- continue: 今回だけスキップして次へ
for文でのcontinue
例1: 奇数をスキップ
Python# 1から10までの偶数だけ表示 for i in range(1, 11): if i % 2 != 0: continue # 奇数はスキップ print(i)
実行結果:
2
4
6
8
10
例2: 特定の値を除外
Pythonfruits = ["りんご", "バナナ", "オレンジ", "バナナ", "ぶどう"] print("バナナ以外の果物:") for fruit in fruits: if fruit == "バナナ": continue # バナナはスキップ print(f"- {fruit}")
実行結果:
バナナ以外の果物:
- りんご
- オレンジ
- ぶどう
例3: 条件に合うもののみ処理
Pythonscores = [85, 45, 92, 38, 76, 55, 90] print("合格者(60点以上):") for score in scores: if score < 60: continue # 60点未満はスキップ print(f"{score}点")
実行結果:
合格者(60点以上):
85点
92点
76点
90点
while文でのcontinue
例1: 特定条件のスキップ
機能: while文でcontinueを使う場合、カウンタの更新位置に注意が必要です。
書き方:
Pythonwhile 条件: カウンタ更新 # continueより前に配置 if スキップ条件: continue 処理
用途: 条件付きスキップ、エラー時の次処理
注意点: カウンタ更新をcontinueより前に書く(無限ループ防止)
Pythoncount = 0 while count < 10: count += 1 # 重要: continueより前で更新 if count % 2 == 0: continue # 偶数はスキップ print(count)
実行結果:
1
3
5
7
9
例2: 無効な入力のスキップ
Python# 正の数だけ処理(0や負の数はスキップ) numbers = [10, -5, 20, 0, 15, -3, 8] total = 0 for number in numbers: if number <= 0: continue # 0以下はスキップ total += number print(f"{number}を加算: 合計 = {total}") print(f"\n最終合計: {total}")
実行結果:
10を加算: 合計 = 10
20を加算: 合計 = 30
15を加算: 合計 = 45
8を加算: 合計 = 53
最終合計: 53
具体例
例1: ファイルフィルタリング
Pythonfiles = ["image1.png", "document.txt", "photo.jpg", "data.csv", "picture.png"] print("画像ファイル(.png):") for file in files: if not file.endswith(".png"): continue # .png以外はスキップ print(f"- {file}")
実行結果:
画像ファイル(.png):
- image1.png
- picture.png
例2: 成績処理
Pythonstudents = [ {"name": "田中", "score": 85}, {"name": "佐藤", "score": 45}, {"name": "鈴木", "score": 92}, {"name": "高橋", "score": 38}, {"name": "伊藤", "score": 76} ] print("=== 合格者リスト(60点以上)===") for student in students: if student["score"] < 60: continue # 不合格者はスキップ print(f"{student['name']}: {student['score']}点")
実行結果:
=== 合格者リスト(60点以上)===
田中: 85点
鈴木: 92点
伊藤: 76点
例3: データクリーニング
Python# 空文字列や空白だけの要素をスキップ data = ["Python", "", " ", "Java", " ", "C++", ""] print("有効なデータ:") for item in data: if not item.strip(): # 空または空白のみ continue print(f"- {item}")
実行結果:
有効なデータ:
- Python
- Java
- C++
例4: 数値の検証
Python# 範囲外の値をスキップ temperatures = [22, 45, 18, -5, 30, 100, 25, -10, 28] print("有効な気温(0〜40度):") for temp in temperatures: if temp < 0 or temp > 40: continue # 範囲外はスキップ print(f"{temp}度")
実行結果:
有効な気温(0〜40度):
22度
18度
30度
25度
28度
例5: 割り算のゼロ除外
Pythonnumbers = [10, 5, 0, 20, 0, 8, 15] divisor = 100 print("=== 割り算結果 ===") for number in numbers: if number == 0: print(f"{number}: スキップ(0では割れません)") continue result = divisor / number print(f"{divisor} ÷ {number} = {result:.2f}")
実行結果:
=== 割り算結果 ===
100 ÷ 10 = 10.00
100 ÷ 5 = 20.00
0: スキップ(0では割れません)
100 ÷ 20 = 5.00
0: スキップ(0では割れません)
100 ÷ 8 = 12.50
100 ÷ 15 = 6.67
例6: 複数条件のスキップ
Python# 3の倍数と5の倍数をスキップ print("3の倍数と5の倍数以外:") for i in range(1, 21): if i % 3 == 0: continue # 3の倍数はスキップ if i % 5 == 0: continue # 5の倍数はスキップ print(i, end=" ") print()
実行結果:
3の倍数と5の倍数以外:
1 2 4 7 8 11 13 14 16 17 19
continueの応用パターン
パターン1: 早期スキップ
Python# 条件チェックを先に行う users = [ {"name": "太郎", "age": 25, "active": True}, {"name": "花子", "age": 17, "active": True}, {"name": "次郎", "age": 30, "active": False}, {"name": "三郎", "age": 22, "active": True} ] print("=== アクティブな成人ユーザー ===") for user in users: if not user["active"]: continue # 非アクティブはスキップ if user["age"] < 18: continue # 未成年はスキップ print(f"{user['name']}({user['age']}歳)")
実行結果:
=== アクティブな成人ユーザー ===
太郎(25歳)
三郎(22歳)
パターン2: ネストの削減
Python# continueを使わない場合(ネストが深い) for i in range(5): if i % 2 == 0: if i > 0: print(f"{i}は正の偶数です") # continueを使う場合(フラット) for i in range(5): if i % 2 != 0: continue # 奇数はスキップ if i == 0: continue # 0もスキップ print(f"{i}は正の偶数です")
実行結果:
2は正の偶数です
4は正の偶数です
よくある間違い
間違い1: while文での無限ループ
Python# 危険: カウンタ更新がcontinueの後 count = 0 while count < 5: if count == 2: continue # count += 1 がスキップされる print(count) count += 1 # ここに到達しない # 正しい: カウンタ更新を先に count = 0 while count < 5: count += 1 # continueより前 if count == 2: continue print(count)
間違い2: continueの位置
Python# continueの後の処理は実行されない for i in range(5): if i == 2: continue print("これは実行されない") # 到達不可能 print(i) # 正しい for i in range(5): if i == 2: continue # ここでスキップ print(i) # i==2以外で実行される
間違い3: 過度な使用
Python# 読みにくい例 for i in range(10): if i % 2 == 0: continue if i % 3 == 0: continue if i > 7: continue print(i) # よりわかりやすい for i in range(10): if i % 2 != 0 and i % 3 != 0 and i <= 7: print(i)
間違い4: breakとの混同
Python# continueはループを続ける for i in range(5): if i == 2: continue # 2だけスキップ print(i) # 出力: 0, 1, 3, 4 # breakはループを終了 for i in range(5): if i == 2: break # 2で終了 print(i) # 出力: 0, 1
間違い5: 不要なcontinue
Python# 不要な例 for i in range(5): if i % 2 == 0: print(f"{i}は偶数") else: continue # これは不要 # シンプルに for i in range(5): if i % 2 == 0: print(f"{i}は偶数")
練習問題
問題1(基礎)⭐☆☆
1から10までの数値のうち、5の倍数以外を表示してください。
💡 ヒント
5の倍数のときcontinueでスキップします。
✅ 解答例
Pythonfor i in range(1, 11): if i % 5 == 0: continue # 5の倍数はスキップ print(i)
実行結果:
1
2
3
4
6
7
8
9
解説: 5と10(5の倍数)がスキップされています。
問題2(基礎)⭐☆☆
リスト [1, -2, 3, -4, 5, -6] から正の数だけを表示してください。
💡 ヒント
負の数のときcontinueでスキップします。
✅ 解答例
Pythonnumbers = [1, -2, 3, -4, 5, -6] for number in numbers: if number < 0: continue # 負の数はスキップ print(number)
実行結果:
1
3
5
解説: 負の数(-2, -4, -6)がスキップされ、正の数だけ表示されています。
問題3(応用)⭐⭐☆
1から20までの数値のうち、3の倍数でも5の倍数でもない数を表示してください。
💡 ヒント
3の倍数と5の倍数の両方でcontinueします。
✅ 解答例
Pythonfor i in range(1, 21): if i % 3 == 0: continue # 3の倍数はスキップ if i % 5 == 0: continue # 5の倍数はスキップ print(i, end=" ") print()
実行結果:
1 2 4 7 8 11 13 14 16 17 19
解説: 3の倍数(3,6,9,12,15,18)と5の倍数(5,10,15,20)がスキップされています。
まとめ
このレッスンでは、continue文で特定条件の処理をスキップする方法を学びました。
- continue文は、現在の周回の残り処理を飛ばして次の反復へ進みます。
- 除外条件を先に書くことで、ループ本体を読みやすく整理できます。
- breakとの違い(ループ継続か終了か)を使い分けられるようになりました。
- while文で使う場合は、更新処理の位置に注意する必要があります。
- スキップ条件を明確化すると、意図しない抜け漏れを防げます。