[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文を活用し、効率的なループ処理を実現してみてください。
 
![[Python] 「While True:」とは?無限ループの使い方と注意点を解説](https://af-e.net/wp-content/uploads/2024/10/thumbnail-46684.png)
![[Python] for文でのin演算子の使い方 – リストやタプルのループ処理](https://af-e.net/wp-content/uploads/2024/10/thumbnail-46683.png)
![[Python] for文の使い方をわかりやすく解説](https://af-e.net/wp-content/uploads/2024/09/thumbnail-41142.png)
![[Python] for文内のエラーをスキップする](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9093.png)
![[Python] continue文でエラーが起きる原因と対処方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9092.png)
![[Python]  ‘int’ object is not iterableエラーの解消方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9091.png)
![[Python] while文で無限ループを実装する](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9090.png)
![[Python] while文を途中で抜ける方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9089.png)
![[Python] while文の条件式の書き方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9088.png)
![[Python] while文の使い方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9087.png)
![[Python] while文で合計を求める](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9086.png)
![[Python] リストをwhileループで処理する](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9085.png)