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)
空行やコメント行(#で始まる行)をスキップし、その他の行を処理します。
関連記事
- Pythonでfor文によるループ処理(for in, for in range)
- Pythonでwhile文によるループ処理
- Pythonで数値の範囲を指定して反復処理(range)
- Pythonでリストを作成(list, リスト内包表記)
- Pythonで辞書をループ処理(for key in dict, for key, value in dict.items())
- Pythonでセットをループ処理(for element in set)
- Pythonでtry-except文による例外処理
- Pythonでジェネレータ関数を使う(yield)
- Pythonでリストの各要素に関数を適用(map, リスト内包表記)
- Pythonでリストの要素をフィルタリング(filter, リスト内包表記)