この記事では、Pythonのcontinue文の使い方を解説していきます。
Pythonのcontinue文の概要
- Pythonのcontinue文は、ループの現在の反復処理の実行をスキップするために使用されます。
- ループの外側でcontinue文を使うと、” SyntaxError: ‘continue’ outside loop ” というエラーが発生します。
- continue文は、for文やwhileで使用することができます。
- もし、continue文が入れ子ループの中にある場合、内側のループの実行だけをスキップすることができます。
- 一般的にcontinue文はif文と共に使用され、ループの現在の実行をスキップする条件を決定するために使用されます。
Pythonのcontinue文の使い方
Pythonでcontinue文を使用する例を見てみましょう。
1. for ループ内でcontinueを使う
例えば、整数の列があるとしよう。
このシナリオは、forループとcontinue文を使って実装することができる。
t_ints = (1 , 2 , 3 , 4 , 5)
for i in t_ints:
if i == 3:
continue
print(f'Processing integer {i}')
print("Done")
結果は以下の通りです。
Processing integer 1
Processing integer 2
Processing integer 4
Processing integer 5
Done
2.continueステートメントとwhileループ
ここでは、continue文とwhileループを併用した簡単な例を紹介します。
count = 10
while count > 0:
if count % 3 == 0:
count -= 1
continue
print(f'Processing Number {count}')
count -= 1
結果は以下の通りです。
Processing Number 10
Processing Number 8
Processing Number 7
Processing Number 5
Processing Number 4
Processing Number 2
Processing Number 1
3. ネストされたループによるcontinueステートメント
処理するタプルのリストがあるとしよう。
タプルは整数を含む。
以下の場合は処理をスキップします。
- タプルのサイズが2より大きい場合、そのタプルの処理をスキップします。
- skip the execution if the integer is 3.
このロジックは、ネストされたforループで実装することができます。
上記の条件を実現するために、2つのcontinue文を使用する必要があります。
list_of_tuples = [(1 , 2), (3 , 4), (5 , 6 , 7)]
for t in list_of_tuples:
if len(t) > 2:
continue
for i in t:
if i == 3:
continue
print(f'Processing {i}')
結果は以下の通りです。
Processing 1
Processing 2
Processing 4
Pythonはラベル付きcontinue文をサポートしていない
多くの一般的なプログラミング言語では、continue 2
の様なラベル付きcontinue文がサポートされています。
これは、ループが入れ子になっている場合に、外側のループの繰り返しをスキップするために使われることがほとんどです。
しかし、Pythonはlabeled continueステートメントをサポートしていません。
PEP 3136はcontinue文にラベルのサポートを追加するために提起されました。
しかし、それは非常にまれなシナリオであり、言語に不必要な複雑さを追加することになるため、却下されました。
外側のループに条件を書いて、現在の実行をスキップさせることはいつでもできます。