[Python] ループ処理をスキップするcontinue文の使い方

Pythonのcontinue文は、ループ内で特定の条件が満たされたときに、残りの処理をスキップして次の反復に進むために使用されます。

例えば、forループやwhileループ内でcontinueを使うと、現在の反復を終了し、次の反復に移行します。

これにより、特定の条件を満たす要素をスキップしたい場合に便利です。

コードの可読性を高め、不要な処理を避けるためにcontinue文を効果的に活用しましょう。

この記事でわかること
  • 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
10

whileループでのcontinue文の使用例

基本的なwhileループでの例

以下の例では、whileループを使用して1から10までの数字を出力しますが、continue文を使って3の倍数をスキップします。

i = 1
while i <= 10:
    if i % 3 == 0:
        i += 1
        continue
    print(i)
    i += 1
1
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
1
for i in range(5):
    if i == 2:
        continue  # 現在の反復をスキップ
    print(i)
0
1
3
4

pass文との違い

pass文は、何も処理を行わないことを明示するための文です。

continue文とは異なり、pass文はループの流れを変更せず、単にその位置で何も実行しないことを示します。

以下の例でその違いを示します。

for i in range(5):
    if i == 2:
        pass  # 何もしない
    print(i)
0
1
2
3
4

このように、continue文は次の反復に進むのに対し、pass文はそのまま処理を続けるため、目的に応じて使い分けることが重要です。

よくある質問

continue文とbreak文の違いは何ですか?

continue文は、現在のループの反復をスキップし、次の反復に進むために使用されます。

一方、break文は、ループ全体を終了させるために使用されます。

つまり、continueはループを続けるが、breakはループを終了させるという違いがあります。

continue文を使うべき場面はどんな時ですか?

continue文は、特定の条件を満たす場合に処理をスキップしたいときに使用します。

例えば、リスト内の特定の値を除外して処理を行いたい場合や、ループ内でエラーを無視して次の反復に進みたい場合に有効です。

continue文を使わない方が良い場合はありますか?

continue文を多用すると、コードの可読性が低下することがあります。

また、無限ループに陥るリスクもあるため、特にwhileループ内での使用には注意が必要です。

条件が複雑な場合や、他の制御文で代替できる場合は、continue文を避ける方が良いでしょう。

まとめ

この記事では、Pythonのcontinue文について、その基本的な使い方や応用例、注意点を解説しました。

continue文は、特定の条件を満たす場合にループの処理をスキップするための便利な機能ですが、使用する際には可読性や無限ループのリスクに注意が必要です。

ぜひ、実際のプログラムでcontinue文を活用し、効率的なループ処理を実現してみてください。

当サイトはリンクフリーです。出典元を明記していただければ、ご自由に引用していただいて構いません。

関連カテゴリーから探す

  • 条件分岐 (18)
  • 繰り返し処理 (30)
  • URLをコピーしました!
目次から探す