Python for continue文とは何か
continue文の基本概念
continue文は、ループ処理の中で現在の反復処理をスキップし、次の反復処理に進むための制御文です。日本語では「続ける」という意味ですが、プログラミングでは「現在の処理をスキップして次に進む」という意味で使われます。
continue文の特徴は以下の通りです:
- ループ処理(for文、while文)の中でのみ使用可能
- continue文以降の処理がスキップされる
- ループ自体は終了せず、次の反復処理に進む
for文での動作メカニズム
for文でcontinue文が実行されると、以下の流れで処理が進みます:
- continue文が実行される
- continue文以降の処理がスキップされる
- 次のループ要素に進む
- ループ処理が継続される
この動作により、特定の条件に合致する要素だけをスキップして、効率的な処理が可能になります。
Python for continue文の基本的な使い方
基本的な書き方
for文でのcontinue文の基本的な書き方は以下の通りです:
for 変数 in リスト:
if 条件:
continue
# 通常の処理
print(変数)
実行の流れ
具体的な例を見てみましょう:
numbers = [1, 2, 3, 4, 5]
for num in numbers:
if num == 3:
continue
print(f"数字: {num}")
print("処理完了")
実行結果:
数字: 1 数字: 2 数字: 4 数字: 5 処理完了
この例では、numが3の場合にcontinue文が実行され、print文がスキップされています。結果として、3だけが出力されていません。
Python for continue文とbreak文の違い
continue文の動作
continue文は現在の反復処理をスキップして、次の反復処理に進みます:
for i in range(5):
if i == 2:
continue
print(f"i = {i}")
実行結果:
i = 0 i = 1 i = 3 i = 4
break文の動作
一方、break文はループ処理を完全に終了します:
for i in range(5):
if i == 2:
break
print(f"i = {i}")
実行結果:
i = 0 i = 1
使い分けのポイント
制御文 | 動作 | 使用場面 |
---|---|---|
continue | 現在の反復をスキップして次へ | 特定の条件をスキップしたい |
break | ループを完全に終了 | 条件に合致したらループを停止したい |
Python for continue文の実用例7選
例1: 偶数・奇数の条件分岐
偶数のみを処理し、奇数をスキップする例:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("偶数のみを処理:")
for num in numbers:
if num % 2 == 1: # 奇数の場合
continue
print(f"{num}は偶数です")
実行結果:
偶数のみを処理: 2は偶数です 4は偶数です 6は偶数です 8は偶数です 10は偶数です
例2: 特定の文字列をスキップ
特定の文字列を含む要素をスキップする例:
fruits = ["apple", "banana", "orange", "skip_me", "grape", "skip_this"]
print("通常の果物のみを処理:")
for fruit in fruits:
if "skip" in fruit:
continue
print(f"果物: {fruit}")
実行結果:
通常の果物のみを処理: 果物: apple 果物: banana 果物: orange 果物: grape
例3: 空文字列や不正な値の除外
データ処理で空文字列やNone値をスキップする例:
data = ["Python", "", "Java", None, "JavaScript", " ", "Go"]
print("有効なデータのみを処理:")
for item in data:
if not item or (isinstance(item, str) and not item.strip()):
continue
print(f"言語: {item}")
実行結果:
有効なデータのみを処理: 言語: Python 言語: Java 言語: JavaScript 言語: Go
例4: リストの条件付き処理
成績データから不合格者をスキップして合格者のみを処理する例:
students = [
{"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点 - 合格
例5: ファイル処理での例外スキップ
ファイル処理でエラーが発生した場合にスキップする例:
import os
filenames = ["test1.txt", "nonexistent.txt", "test2.txt", "another_missing.txt"]
print("存在するファイルのみを処理:")
for filename in filenames:
if not os.path.exists(filename):
print(f"ファイル {filename} が見つかりません - スキップ")
continue
print(f"ファイル {filename} を処理中...")
# ここで実際のファイル処理を行う
例6: 数値計算での特定値除外
数値計算でゼロ除算エラーを防ぐ例:
divisors = [2, 0, 4, 0, 8, 10]
dividend = 100
print("ゼロ以外の値で除算:")
for divisor in divisors:
if divisor == 0:
print("0による除算はスキップ")
continue
result = dividend / divisor
print(f"{dividend} ÷ {divisor} = {result}")
実行結果:
ゼロ以外の値で除算: 100 ÷ 2 = 50.0 0による除算はスキップ 100 ÷ 4 = 25.0 0による除算はスキップ 100 ÷ 8 = 12.5 100 ÷ 10 = 10.0
例7: データ処理での条件分岐
Webスクレイピングやデータ分析で不正なデータをスキップする例:
user_data = [
{"id": 1, "name": "太郎", "email": "taro@email.com"},
{"id": 2, "name": "", "email": ""}, # 不正なデータ
{"id": 3, "name": "花子", "email": "hanako@email.com"},
{"id": 4, "name": "次郎", "email": "invalid-email"}, # 不正なメール
{"id": 5, "name": "三郎", "email": "saburo@email.com"}
]
print("有効なユーザーデータのみを処理:")
for user in user_data:
# 名前が空または@が含まれていないメールアドレスをスキップ
if not user["name"] or "@" not in user["email"]:
print(f"ユーザーID {user['id']}: 不正なデータ - スキップ")
continue
print(f"ユーザーID {user['id']}: {user['name']} ({user['email']})")
実行結果:
有効なユーザーデータのみを処理: ユーザーID 1: 太郎 (taro@email.com) ユーザーID 2: 不正なデータ - スキップ ユーザーID 3: 花子 (hanako@email.com) ユーザーID 4: 不正なデータ - スキップ ユーザーID 5: 三郎 (saburo@email.com)
Python for continue文でよくあるエラーと対処法
よくある間違い
1. ループ外でのcontinue文使用
# エラー例
if True:
continue # SyntaxError: 'continue' not properly in loop
対処法: continue文はループ内でのみ使用可能です。
2. 無限ループの発生
# 危険な例
i = 0
while i < 5:
if i == 2:
continue # iが更新されないため無限ループ
print(i)
i += 1
対処法: while文でcontinue文を使用する際は、カウンター変数の更新を忘れないようにしましょう。
エラーの対処法
continue文を使用する際の注意点:
- ループ内でのみ使用する
- while文では変数の更新を忘れない
- continue文の位置に注意する
- ネストしたループでの動作を理解する
まとめ
Python for continue文は、ループ処理で特定の条件をスキップする際に非常に便利な制御文です。
重要なポイント:
- continue文は現在の反復をスキップして次の反復に進む
- break文はループを完全に終了する
- 実用的な場面:データ処理、エラー処理、条件分岐など
- ループ内でのみ使用可能
この記事で紹介した7つの実用例を参考に、実際のプログラムでcontinue文を活用してみてください。continue文を適切に使うことで、より読みやすく効率的なコードが書けるようになります。