Pythonループ処理の制御:continue文を使って特定の処理をスキップする方法

リストなどのデータを順に処理するループの中で、「特定の条件に当てはまるデータだけは処理せずに飛ばしたい」という場合があります。例えば、ファイル一覧から画像ファイルだけを無視したり、無効なデータを除外したりするケースです。

このような「現在の処理を中断し、次のループ(反復)へ進む」制御を行うために、Pythonでは continueを使用します。

この記事では、continue 文の基本的な使い方と、ループを完全に終了させる break 文との違いについて解説します。

目次

continue 文の基本動作

continue 文が実行されると、Pythonインタプリタは現在のループの残りの処理をすべてスキップし、直ちにループの先頭に戻って、次の要素の処理(次のイテレーション)を開始します。Python continue statement flow chartの画像

構文:

for 変数 in イテラブル:
    if スキップしたい条件:
        continue  # ここで次のループへ飛ぶ
    
    # 通常の処理(条件に該当した場合は実行されない)

具体的な使用例:特定ファイルのフィルタリング

例として、ファイル名のリストから「テキストファイル(.txt)」のみを処理し、それ以外のファイルはスキップするプログラムを作成します。

# 処理対象のファイルリスト
file_list = ["report_2024.txt", "profile.png", "data.csv", "memo.txt", "app.py"]

print("--- テキストファイルの処理開始 ---")

for filename in file_list:
    # ファイル名が ".txt" で終わらない場合はスキップ
    if not filename.endswith(".txt"):
        print(f"[スキップ] 対象外のファイルです: {filename}")
        continue

    # ここから下は ".txt" の場合のみ実行される
    print(f"処理中... テキストファイルを読み込みます: {filename}")
    # ファイル読み込みなどの処理をここに記述

実行結果:

--- テキストファイルの処理開始 ---
処理中... テキストファイルを読み込みます: report_2024.txt
[スキップ] 対象外のファイルです: profile.png
[スキップ] 対象外のファイルです: data.csv
処理中... テキストファイルを読み込みます: memo.txt
[スキップ] 対象外のファイルです: app.py

解説

  1. report_2024.txt は条件(.txt で終わらない)に当てはまらないため、continue は実行されず、下の「処理中…」が表示されます。
  2. profile.png は条件に当てはまるため、[スキップ]... を表示した後、continue が実行されます。
  3. これにより、直下の「処理中…」というコードは無視され、ループは即座に次の data.csv の処理へと移ります。

break 文との違い

continue とよく比較されるのが break 文です。両者の動作は明確に異なります。

  • continue: 「今回だけ」処理を中断します。ループ自体は終わらず、次の要素の処理が続きます。 (例:このファイルは飛ばして、次のファイルを見よう)
  • break: 「ループそのもの」を中断します。残りの要素があっても処理は完全に終了します。 (例:エラーが出たので、処理全体を中止しよう)

比較コード

numbers = [1, 2, 999, 4, 5]

print("--- continue の場合 ---")
for n in numbers:
    if n == 999:
        continue # 999 だけ飛ばす
    print(n)

print("\n--- break の場合 ---")
for n in numbers:
    if n == 999:
        break # 999 が出たら終了
    print(n)

実行結果:

--- continue の場合 ---
1
2
4
5

--- break の場合 ---
1
2

continue の場合は 999 の後にある 45 も表示されますが、break の場合は 999 の時点でループが完全に止まっています。

まとめ

  • continue 文は、ループ内で特定の条件のときだけ処理をスキップし、次の回に進むために使用します。
  • エラーデータや対象外のデータを除外(フィルタリング)しながらループを回したい場合に有効です。
  • ループ自体を終了させる break 文とは役割が異なるため、目的に応じて使い分ける必要があります。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次