繰り返し処理

[Python] forループを途中で抜ける方法

Pythonのforループを途中で抜けるには、break文を使用します。

break文は、ループ内で特定の条件が満たされたときにループを終了させるために使われます。

例えば、リスト内の要素を順に処理していく中で、特定の値に達したらループを終了したい場合に便利です。

また、break文を使用することで、無駄な処理を省き、プログラムの効率を向上させることができます。

forループを途中で抜ける方法

break文の使い方

break文の基本構文

break文は、ループを途中で終了させるための制御文です。

forループやwhileループの中で使用され、特定の条件が満たされたときにループを抜け出すことができます。

基本的な構文は以下の通りです。

for item in iterable:
    if 条件:
        break
    # ループ内の処理

break文を使った具体例

以下は、break文を使ってforループを途中で抜ける具体例です。

この例では、リスト内の特定の値を見つけたときにループを終了します。

# リスト内の特定の値を見つけたらループを終了する
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5
for number in numbers:
    if number == target:
        print(f"見つけた: {number}")
        break
    print(f"現在の数: {number}")
現在の数: 1
現在の数: 2
現在の数: 3
現在の数: 4
見つけた: 5

この例では、リストnumbersを順にチェックし、targetの値である5を見つけた時点でbreak文が実行され、ループが終了します。

continue文との違い

continue文の基本構文

continue文は、ループの現在の反復をスキップし、次の反復に進むための制御文です。

break文とは異なり、ループ自体を終了させるのではなく、次の反復に移行します。

基本的な構文は以下の通りです。

for item in iterable:
    if 条件:
        continue
    # ループ内の処理

continue文を使った具体例

以下は、continue文を使って特定の条件を満たす場合にループの現在の反復をスキップする具体例です。

この例では、偶数をスキップして奇数のみを処理します。

# 偶数をスキップして奇数のみを処理する
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for number in numbers:
    if number % 2 == 0:
        continue
    print(f"奇数: {number}")
奇数: 1
奇数: 3
奇数: 5
奇数: 7
奇数: 9

この例では、numbersリストの中で偶数を見つけた場合にcontinue文が実行され、その反復をスキップして次の数に進みます。

結果として、奇数のみが出力されます。

break文の応用例

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

内側のループを抜ける

ネストされたループでは、break文を使って内側のループだけを抜けることができます。

以下の例では、2重のforループを使用し、内側のループで特定の条件が満たされたときにbreak文を使って内側のループを終了します。

# ネストされたループで内側のループを抜ける
for i in range(3):
    for j in range(3):
        if j == 1:
            print(f"内側のループを抜ける: i={i}, j={j}")
            break
        print(f"内側のループ: i={i}, j={j}")
内側のループ: i=0, j=0
内側のループを抜ける: i=0, j=1
内側のループ: i=1, j=0
内側のループを抜ける: i=1, j=1
内側のループ: i=2, j=0
内側のループを抜ける: i=2, j=1

この例では、j1になったときに内側のループを抜け、外側のループの次の反復に進みます。

外側のループを抜ける方法

ネストされたループで外側のループを抜けるには、フラグ変数を使用する方法があります。

以下の例では、フラグ変数foundを使って外側のループを終了します。

# フラグ変数を使って外側のループを抜ける
found = False
for i in range(3):
    for j in range(3):
        if j == 1:
            found = True
            print(f"外側のループを抜ける: i={i}, j={j}")
            break
    if found:
        break
外側のループを抜ける: i=0, j=1

この例では、j1になったときにフラグ変数foundTrueに設定し、内側のループを抜けた後、外側のループも終了します。

条件付きでループを抜ける

if文と組み合わせたbreak文

break文はif文と組み合わせて使用することで、特定の条件が満たされたときにループを終了できます。

以下の例では、リスト内の特定の値を見つけたときにループを終了します。

# if文と組み合わせて特定の値を見つけたらループを終了する
numbers = [10, 20, 30, 40, 50]
target = 30
for number in numbers:
    if number == target:
        print(f"見つけた: {number}")
        break
    print(f"現在の数: {number}")
現在の数: 10
現在の数: 20
見つけた: 30

この例では、targetの値である30を見つけた時点でbreak文が実行され、ループが終了します。

複数条件でのbreak文の使用

複数の条件を組み合わせてbreak文を使用することも可能です。

以下の例では、リスト内の特定の値を見つけるか、特定のインデックスに達したときにループを終了します。

# 複数条件でループを終了する
numbers = [10, 20, 30, 40, 50]
target = 30
max_index = 3
for index, number in enumerate(numbers):
    if number == target or index == max_index:
        print(f"ループ終了: index={index}, number={number}")
        break
    print(f"現在の数: index={index}, number={number}")
現在の数: index=0, number=10
現在の数: index=1, number=20
ループ終了: index=2, number=30

この例では、targetの値である30を見つけた時点でループが終了します。

また、max_indexに達した場合もループが終了します。

無限ループからの脱出

whileループとbreak文

whileループは条件がTrueである限り繰り返し実行されますが、break文を使うことで無限ループから脱出することができます。

以下の例では、ユーザーの入力に基づいてループを終了します。

# ユーザーの入力に基づいて無限ループを終了する
while True:
    user_input = input("終了するには 'exit' と入力してください: ")
    if user_input == 'exit':
        print("ループを終了します。")
        break
    print(f"入力された文字列: {user_input}")

この例では、ユーザーが'exit'と入力したときにbreak文が実行され、無限ループが終了します。

forループでの無限ループとbreak文

forループでも、特定の条件を満たしたときにbreak文を使って無限ループを終了することができます。

以下の例では、itertoolsモジュールを使用して無限ループを作成し、特定の条件で終了します。

import itertools
# itertoolsを使って無限ループを作成し、特定の条件で終了する
for number in itertools.count():
    print(f"現在の数: {number}")
    if number >= 5:
        print("ループを終了します。")
        break
現在の数: 0
現在の数: 1
現在の数: 2
現在の数: 3
現在の数: 4
現在の数: 5
ループを終了します。

この例では、itertools.count()を使って無限に数を生成し、number5以上になったときにbreak文を実行してループを終了します。

まとめ

この記事では、Pythonのforループを途中で抜ける方法について詳しく解説しました。

break文やcontinue文の使い方、ネストされたループでの応用例、無限ループからの脱出方法などを学びました。

これらの知識を活用することで、より効率的で柔軟なプログラムを作成できるようになります。

ぜひ、実際のプログラムでこれらのテクニックを試してみてください。

関連記事

Back to top button