1. continue
文の基本理解
continue
文は、Pythonのループ構造内で特定の条件を満たす際に、そのループの現在の反復をスキップして次の反復に進むために使用されます。これは、例えば、特定の要素を処理から除外したい場合に便利です。
1.1 continue
の基本構文
continue
文は、for
ループまたはwhile
ループの中で使われます。基本的な構文は以下のとおりです。
for i in range(5):
if i == 2:
continue
print(i)
このコードでは、i
が2のときにcontinue
が実行され、print
文はスキップされます。そのため、出力は0, 1, 3, 4
となります。
2. for
ループでのcontinue
の使い方
for
ループは、繰り返し処理を行う際によく使われます。この中でcontinue
を使用すると、特定の条件でその反復の残りの処理をスキップすることができます。
2.1 基本的なfor
ループでの例
以下のコードでは、リスト内の数値を順に処理し、特定の条件に合致する場合にその処理をスキップします。
numbers = [1, 2, 3, 4, 5]
for num in numbers:
if num % 2 == 0:
continue
print(num)
このコードでは、偶数の数値がcontinue
によってスキップされるため、出力は1, 3, 5
となります。
2.2 ネストされたfor
ループでのcontinue
ネストされたループ内でcontinue
を使う場合、continue
は最も内側のループにのみ影響します。例えば:
for i in range(3):
for j in range(3):
if j == 1:
continue
print(i, j)
このコードでは、内側のループでj
が1の場合に処理をスキップし、print(i, j)
の出力は(0, 0), (0, 2), (1, 0), (1, 2), (2, 0), (2, 2)
となります。
3. while
ループでのcontinue
の使い方
while
ループでも同様に、continue
を使って現在の反復をスキップし、次の反復に進むことができます。
3.1 基本的なwhile
ループでの例
以下のコードは、ユーザーから数値を入力させ、特定の条件でcontinue
を使って処理をスキップします。
counter = 0
while counter < 5:
counter += 1
if counter == 3:
continue
print(counter)
このコードでは、counter
が3のときにcontinue
が実行され、print
文はスキップされます。そのため、出力は1, 2, 4, 5
となります。
3.2 while
ループでの入力検証
while
ループでユーザー入力を検証する際にもcontinue
が役立ちます。例えば、空の入力をスキップするためにcontinue
を使うことができます:
while True:
text = input("Enter a number (or 'exit' to quit): ")
if text == 'exit':
break
if text == '':
print("Empty input, please try again.")
continue
print(f"You entered: {text}")
このコードでは、ユーザーが空の入力をした場合にcontinue
で処理をスキップし、再度入力を促します。
4. continue
とelse
の組み合わせ
Pythonでは、for
ループとwhile
ループにelse
ブロックを組み合わせることができます。このelse
ブロックは、continue
が実行された場合にも適用されるため、より複雑なフロー制御を実現できます。
4.1 else
ブロックでの例
以下の例では、else
ブロックとcontinue
を組み合わせて、ループが最後まで実行された場合の処理を行います。
for i in range(3):
for j in range(3):
if j == 1:
continue
print(i, j)
else:
print("Inner loop finished.")
このコードでは、内側のループがcontinue
によって途中でスキップされたとしても、else
ブロックの”Inner loop finished.”が表示されます。
5. continue
とbreak
の違い
continue
とbreak
はどちらもループの流れを制御しますが、用途が異なります。
5.1 continue
の動作
continue
は現在の反復をスキップし、次の反復に進みます。ループ全体を終了することはありません。
5.2 break
の動作
一方、break
はループ全体を終了し、ループの外に出ます。以下の例で違いを見てみましょう:
for i in range(5):
if i == 3:
break
print(i)
このコードでは、i
が3のときにbreak
が実行され、ループ全体が終了します。出力は0, 1, 2
となります。
5.3 どちらを使うべきか
continue
は特定の条件で処理をスキップするのに使い、break
は特定の条件でループを完全に終了する場合に使います。用途に応じて使い分けましょう。
6. 実践的な応用
continue
文は、実際のプログラミングで効率的なコードを書いたり、特定の状況を避けるために使用されます。
6.1 データフィルタリング
例えば、データセットから特定の値を除外する際にcontinue
を使うことができます。
data = [1, -1, 2, -2, 3, -3]
for value in data:
if value < 0:
continue
print(value)
このコードでは、負の値がスキップされ、出力は1, 2, 3
となります。
7. よくある間違いとトラブルシューティング
continue
を使用する際によくある間違いとその解決策について解説します。
7.1 インデントミス
continue
を使う際の最も一般的なミスはインデントです。continue
が意図しない場所にインデントされていると、予期しない動作を引き起こす可能性があります。
7.2 無限ループの危険性
while
ループでcontinue
を使う場合、ループの進行を確実に管理する必要があります。例えば、カウンタの更新をcontinue
の前に行わないと無限ループになる可能性があります。
counter = 0
while counter < 5:
if counter == 3:
continue # 無限ループになる
counter += 1
print(counter)
このコードでは、counter
の更新がcontinue
の後に行われないため、無限ループになります。