PYTHON MEBY

Pythonでループを中断・スキップ(break, continue)

この記事では、Pythonのループ制御における`break`と`continue`の使い方を解説します。`break`でループを完全に中断し、`continue`で現在のループをスキップして次のループへ進む方法を、サンプルコード付きで説明します。

目次

breakによるループの中断

Pythonの`break`ステートメントは、ループ処理を完全に終了させます。`break`が実行されると、ループの外側のコードに制御が移ります。

for i in range(1, 6):
    if i == 3:
        break
    print(i)

上記のコードでは、`i`が3になった時点でループが中断され、`4`と`5`は出力されません。出力結果は`1 2`となります。

while True:
    num = int(input("数値を入力してください (終了するには0を入力): "))
    if num == 0:
        break
    print(f"入力された数値: {num}")

無限ループ`while True`でも、条件を満たした時に`break`でループを終了できます。

continueによるループのスキップ

Pythonの`continue`ステートメントは、現在のループの残りの処理をスキップし、次のループ反復を開始します。

for i in range(1, 6):
    if i == 3:
        continue
    print(i)

上記のコードでは、`i`が3になった場合、`print(i)`が実行されずに次のループに進みます。出力結果は`1 2 4 5`となります。

breakとcontinueの組み合わせ

`break`と`continue`を組み合わせることで、より複雑なループ制御を行うことができます。

for i in range(1, 11):
    if i % 2 == 0:
        continue  # 偶数の場合はスキップ
    if i > 7:
        break  # 7より大きい奇数の場合はループ終了
    print(i)

この例では、偶数はスキップし、7より大きい奇数でループが終了します。出力結果は`1 3 5 7`となります。

実践例:数値の処理

リストから偶数のみを取り出して、合計を求める例

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_sum = 0
for number in numbers:
    if number % 2 != 0:
        continue
    even_sum += number
print(f"偶数の合計: {even_sum}") # 出力: 偶数の合計: 30

continue を使って奇数をスキップし、偶数の合計を効率的に計算しています

実践例:ファイル処理

ファイルから特定の条件に一致する行のみ処理する例

# これは例なので、実際にはファイルが存在するかどうかの確認が必要です。
# ファイルが存在しない場合の例外処理を追加する必要があります。
with open("data.txt", "r") as f:
    for line in f:
        line = line.strip()
        if not line or line.startswith("#"):
            continue
        # 条件に一致する行のみ処理する
        print(line)

空行やコメント行(#で始まる行)をスキップし、その他の行を処理します。

関連記事