[Python] ループ処理をスキップするcontinue文の使い方
Pythonのcontinue文は、ループ内で特定の条件が満たされたときに、残りの処理をスキップして次の反復に進むために使用されます。
例えば、forループやwhileループ内でcontinueを使うと、現在の反復を終了し、次の反復に移行します。
これにより、特定の条件を満たす要素をスキップしたい場合に便利です。
コードの可読性を高め、不要な処理を避けるためにcontinue文を効果的に活用しましょう。
continue文とは
continue文の基本的な説明
continue文は、Pythonのループ処理において特定の条件を満たした場合に、現在の反復をスキップし、次の反復に移るための制御文です。
これにより、ループ内の残りの処理を実行せずに、次のループの繰り返しに進むことができます。
continue文は、主にforループやwhileループの中で使用されます。
continue文の役割と用途
continue文は、以下のような役割や用途があります。
| 役割・用途 | 説明 |
|---|---|
| 条件に基づくスキップ | 特定の条件を満たす場合に処理をスキップする |
| コードの可読性向上 | 不要なネストを避け、コードをシンプルに保つ |
| エラー処理の簡素化 | エラーが発生した場合に次の反復に進む |
これにより、プログラムの流れを制御し、効率的なループ処理を実現することができます。
continue文の基本的な使い方
forループでのcontinue文の使用例
基本的なforループでの例
以下の例では、forループを使用して1から10までの数字を出力しますが、continue文を使って偶数をスキップします。
for i in range(1, 11):
if i % 2 == 0:
continue
print(i)1
3
5
7
9条件付きforループでの例
次の例では、リスト内の数値をループ処理し、特定の条件(5より小さい数値)を満たす場合にスキップします。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for number in numbers:
if number < 5:
continue
print(number)5
6
7
8
9
10whileループでのcontinue文の使用例
基本的なwhileループでの例
以下の例では、whileループを使用して1から10までの数字を出力しますが、continue文を使って3の倍数をスキップします。
i = 1
while i <= 10:
if i % 3 == 0:
i += 1
continue
print(i)
i += 11
2
4
5
7
8
10条件付きwhileループでの例
次の例では、whileループを使用して、ユーザーからの入力を受け取り、特定の条件(負の数)を満たす場合にスキップします。
while True:
number = int(input("数字を入力してください(0で終了):"))
if number < 0:
continue
if number == 0:
break
print(f"入力された数字: {number}")このプログラムは、ユーザーが負の数を入力した場合、その入力をスキップし、再度数字の入力を促します。
continue文の応用例
ネストされたループでのcontinue文
二重ループでのcontinue文の使用例
以下の例では、二重のforループを使用して、2次元リストの要素を出力しますが、特定の条件(0の要素)を満たす場合にスキップします。
matrix = [
[1, 2, 0],
[4, 5, 6],
[7, 0, 9]
]
for row in matrix:
for element in row:
if element == 0:
continue
print(element)1
2
4
5
6
7
9三重ループでのcontinue文の使用例
次の例では、三重のforループを使用して、3次元リストの要素を出力しますが、特定の条件(負の数)を満たす場合にスキップします。
three_d_array = [
[[1, 2], [3, -1]],
[[4, 5], [6, 7]],
[[-2, 8], [9, 10]]
]
for layer in three_d_array:
for row in layer:
for element in row:
if element < 0:
continue
print(element)1
2
3
4
5
6
7
8
9
10リスト内包表記でのcontinue文の代替
リスト内包表記の基本
リスト内包表記は、リストを簡潔に生成するための構文で、通常のforループを使ったリスト生成よりも短く書くことができます。
以下は、リスト内包表記の基本的な例です。
squares = [x**2 for x in range(10)]continue文を使わないリスト内包表記の例
continue文を使わずに、特定の条件を満たす要素だけをリストに含める方法を示します。
以下の例では、1から10までの数値の中から偶数だけをリストに格納します。
even_numbers = [x for x in range(1, 11) if x % 2 == 0][2, 4, 6, 8, 10]このように、リスト内包表記を使用することで、continue文を使わずに条件に基づいた要素の選択が可能です。
continue文を使う際の注意点
無限ループのリスク
continue文を使用する際には、無限ループに陥るリスクがあります。
特に、whileループ内でcontinue文を使う場合、ループの条件が適切に更新されないと、ループが永遠に続いてしまうことがあります。
以下の例では、iの値が更新されないため、無限ループになります。
i = 1
while i <= 10:
if i % 2 == 0:
continue # iの値が更新されない
print(i)このような場合、continue文の後にi += 1を追加することで、無限ループを防ぐことができます。
コードの可読性について
continue文を多用すると、コードの可読性が低下する可能性があります。
特に、複雑な条件やネストされたループの中で使用すると、プログラムの流れが分かりにくくなることがあります。
可読性を保つためには、continue文の使用を最小限に抑え、必要に応じてコメントを追加することが重要です。
他の制御文との違い
break文との違い
break文は、ループ全体を終了させるために使用されます。
一方、continue文は、現在の反復をスキップし、次の反復に進むために使用されます。
以下の例でその違いを示します。
for i in range(5):
if i == 2:
break # ループを終了
print(i)0
1for i in range(5):
if i == 2:
continue # 現在の反復をスキップ
print(i)0
1
3
4pass文との違い
pass文は、何も処理を行わないことを明示するための文です。
continue文とは異なり、pass文はループの流れを変更せず、単にその位置で何も実行しないことを示します。
以下の例でその違いを示します。
for i in range(5):
if i == 2:
pass # 何もしない
print(i)0
1
2
3
4このように、continue文は次の反復に進むのに対し、pass文はそのまま処理を続けるため、目的に応じて使い分けることが重要です。
まとめ
この記事では、Pythonのcontinue文について、その基本的な使い方や応用例、注意点を解説しました。
continue文は、特定の条件を満たす場合にループの処理をスキップするための便利な機能ですが、使用する際には可読性や無限ループのリスクに注意が必要です。
ぜひ、実際のプログラムでcontinue文を活用し、効率的なループ処理を実現してみてください。