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

Pythonプログラミングを学ぶ中で、ループ処理は避けて通れない重要な概念です。

その中でも「continue文」は、特定の条件が満たされたときにループの現在の反復をスキップし、次の反復に進むために使われます。

この記事では、continue文の基本的な使い方から実践的な使用例までをわかりやすく解説します。

初心者の方でも理解しやすいように、具体的なサンプルコードとその実行結果を交えながら説明していきますので、ぜひ最後までご覧ください。

目次から探す

continue文とは

Pythonには、ループ処理を制御するためのいくつかの文があります。

その中でも「continue文」は、特定の条件が満たされた場合に現在のループの反復をスキップし、次の反復に進むために使用されます。

これにより、不要な処理を避け、効率的なコードを書くことができます。

continue文の基本概念

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

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

以下は、continue文の基本的な構文です:

for 変数 in シーケンス:
    if 条件:
        continue
    # 条件が満たされない場合の処理

continue文の役割と用途

continue文の主な役割は、ループ内で特定の条件が満たされた場合に、その条件以降の処理をスキップすることです。

これにより、不要な処理を避け、コードの効率を向上させることができます。

具体的な用途としては以下のようなシナリオがあります:

  • 特定の要素をスキップする:リストやタプルなどのシーケンスをループ処理する際に、特定の要素をスキップしたい場合に使用します。
  • 入力データのバリデーション:ユーザーからの入力データをチェックし、不正なデータが含まれている場合にそのデータをスキップするために使用します。
  • ネストされたループでの使用:複数のループがネストされている場合に、内側のループで特定の条件が満たされたときにcontinue文を使って外側のループに戻ることができます。

以下は、continue文を使った簡単な例です:

for i in range(1, 11):
    if i % 2 == 0:
        continue
    print(i)

このコードは、1から10までの数字をループ処理し、偶数の場合はスキップして奇数のみを出力します。

実行結果は以下の通りです:

1
3
5
7
9

このように、continue文を使うことで、特定の条件に基づいてループ処理を柔軟に制御することができます。

continue文の基本的な使い方

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

基本的なforループの例

まず、基本的なforループの例を見てみましょう。

以下のコードは、リスト内の各要素を順に出力するものです。

# リストの定義
numbers = [1, 2, 3, 4, 5]
# forループを使ってリストの要素を出力
for number in numbers:
    print(number)

このコードを実行すると、リスト内の全ての要素が順に出力されます。

1
2
3
4
5

continue文を使ったforループの例

次に、continue文を使ったforループの例を見てみましょう。

ここでは、リスト内の偶数の要素をスキップして出力するコードを示します。

# リストの定義
numbers = [1, 2, 3, 4, 5]
# forループを使ってリストの要素を出力
for number in numbers:
    # 偶数の場合はスキップ
    if number % 2 == 0:
        continue
    print(number)

このコードを実行すると、リスト内の偶数の要素がスキップされ、奇数の要素だけが出力されます。

1
3
5

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

基本的なwhileループの例

次に、基本的なwhileループの例を見てみましょう。

以下のコードは、1から5までの数値を順に出力するものです。

# 初期値の設定
i = 1
# whileループを使って数値を出力
while i <= 5:
    print(i)
    i += 1

このコードを実行すると、1から5までの数値が順に出力されます。

1
2
3
4
5

continue文を使ったwhileループの例

次に、continue文を使ったwhileループの例を見てみましょう。

ここでは、偶数の数値をスキップして出力するコードを示します。

# 初期値の設定
i = 1
# whileループを使って数値を出力
while i <= 5:
    # 偶数の場合はスキップ
    if i % 2 == 0:
        i += 1
        continue
    print(i)
    i += 1

このコードを実行すると、偶数の数値がスキップされ、奇数の数値だけが出力されます。

1
3
5

このように、continue文を使うことで、ループ内の特定の条件に合致する場合にその後の処理をスキップし、次のループに進むことができます。

これにより、コードの可読性や効率性を向上させることができます。

continue文の実践的な使用例

リスト内の特定の要素をスキップする

リストの要素を順に処理する例

まずは、リストの要素を順に処理する基本的な例を見てみましょう。

以下のコードは、リスト内の各要素を順に出力します。

# リストの要素を順に出力する
numbers = [1, 2, 3, 4, 5]
for number in numbers:
    print(number)

このコードを実行すると、以下のようにリスト内の全ての要素が出力されます。

1
2
3
4
5

特定の要素をスキップする例

次に、リスト内の特定の要素をスキップする例を見てみましょう。

例えば、リスト内の偶数をスキップしたい場合、continue文を使って実現できます。

# 偶数をスキップしてリストの要素を出力する
numbers = [1, 2, 3, 4, 5]
for number in numbers:
    if number % 2 == 0:
        continue
    print(number)

このコードを実行すると、偶数がスキップされ、以下のように出力されます。

1
3
5

入力データのバリデーション

入力データのチェック例

次に、入力データのバリデーションの例を見てみましょう。

以下のコードは、リスト内の各要素が正の整数であるかどうかをチェックし、正の整数であればそのまま出力します。

# 入力データが正の整数かどうかをチェックする
data = [10, -5, 20, 0, 15]
for value in data:
    if value > 0:
        print(f"{value} is a positive integer")

このコードを実行すると、正の整数のみが出力されます。

10 is a positive integer
20 is a positive integer
15 is a positive integer

無効なデータをスキップする例

次に、無効なデータをスキップする例を見てみましょう。

例えば、リスト内の負の数やゼロをスキップしたい場合、continue文を使って実現できます。

# 無効なデータ(負の数やゼロ)をスキップする
data = [10, -5, 20, 0, 15]
for value in data:
    if value <= 0:
        continue
    print(f"{value} is a valid data")

このコードを実行すると、無効なデータがスキップされ、以下のように出力されます。

10 is a valid data
20 is a valid data
15 is a valid data

ネストされたループでのcontinue文の使用

ネストされたループの基本例

ネストされたループとは、ループの中にさらにループがある構造のことです。

以下のコードは、二重のforループを使って2次元リストの要素を出力する基本的な例です。

# 2次元リストの要素を出力する
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
for row in matrix:
    for element in row:
        print(element, end=' ')
    print()

このコードを実行すると、2次元リストの全ての要素が出力されます。

1 2 3 
4 5 6 
7 8 9

内側のループでcontinue文を使う例

次に、内側のループでcontinue文を使う例を見てみましょう。

例えば、2次元リスト内の偶数をスキップしたい場合、内側のループでcontinue文を使って実現できます。

# 2次元リスト内の偶数をスキップする
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
for row in matrix:
    for element in row:
        if element % 2 == 0:
            continue
        print(element, end=' ')
    print()

このコードを実行すると、偶数がスキップされ、以下のように出力されます。

1 3 
5 
7 9

以上が、continue文の実践的な使用例です。

continue文を使うことで、特定の条件に基づいてループ処理をスキップすることができ、コードの柔軟性と効率性を向上させることができます。

continue文の注意点とベストプラクティス

continue文の使い過ぎに注意

continue文は非常に便利な制御文ですが、使い過ぎるとコードの可読性が低下する可能性があります。

特に、複数のcontinue文が同じループ内に存在すると、どの条件でループがスキップされるのかが一目でわかりにくくなります。

例えば、以下のようなコードは可読性が低くなりがちです。

for i in range(10):
    if i % 2 == 0:
        continue
    if i % 3 == 0:
        continue
    print(i)

このコードでは、iが2の倍数または3の倍数である場合にcontinue文が実行されますが、条件が複雑で一目で理解しにくいです。

コードの可読性を保つための工夫

コードの可読性を保つためには、以下のような工夫が有効です。

条件をまとめる

複数の条件を一つのif文にまとめることで、コードがシンプルになります。

for i in range(10):
    if i % 2 == 0 or i % 3 == 0:
        continue
    print(i)

このようにすることで、どの条件でcontinue文が実行されるのかが一目でわかります。

関数を使う

条件が複雑な場合は、条件を判定する部分を関数に分けると良いでしょう。

def should_skip(i):
    return i % 2 == 0 or i % 3 == 0
for i in range(10):
    if should_skip(i):
        continue
    print(i)

このように関数を使うことで、メインのループがシンプルになり、可読性が向上します。

他の制御文との組み合わせ

continue文は他の制御文と組み合わせて使うことができます。

特に、break文やreturn文と組み合わせることで、より柔軟なループ制御が可能になります。

break文との組み合わせ

break文はループを完全に終了させる制御文です。

continue文と組み合わせることで、特定の条件でループをスキップしつつ、他の条件でループを終了させることができます。

for i in range(10):
    if i % 2 == 0:
        continue
    if i > 5:
        break
    print(i)

このコードでは、iが2の倍数の場合はスキップし、iが5を超えた場合はループを終了します。

return文との組み合わせ

関数内でcontinue文とreturn文を組み合わせることで、特定の条件でループをスキップしつつ、他の条件で関数を終了させることができます。

def process_numbers(numbers):
    for number in numbers:
        if number < 0:
            continue
        if number > 100:
            return
        print(number)
process_numbers([10, -5, 50, 150, 20])

このコードでは、負の数はスキップし、100を超える数が出てきた時点で関数を終了します。

以上のように、continue文は非常に強力な制御文ですが、使い方には注意が必要です。

適切に使うことで、コードの可読性と柔軟性を保つことができます。

目次から探す