[Python] while文を途中で抜ける方法
Pythonのwhile文を途中で抜けるためには、break文を使用します。
break文は、ループの実行を即座に終了し、ループの後のコードに制御を移します。
例えば、特定の条件が満たされたときにwhileループを終了したい場合に便利です。
また、continue文を使用すると、ループの現在の反復をスキップし、次の反復に進むことができます。
これにより、特定の条件を満たす場合にのみループを続行することが可能です。
while文を途中で抜ける方法
break文の使い方
break文の基本構文
break文は、ループを途中で終了させるための制御文です。
while文の中で特定の条件が満たされたときにループを抜け出すために使用します。
基本的な構文は以下の通りです。
while 条件式:
    # ループ内の処理
    if 条件:
        break
    # 続く処理break文を使った具体例
以下は、break文を使ってユーザーが入力した数値が負の数になったときにループを終了する例です。
while True:
    number = int(input("数値を入力してください(負の数で終了): "))
    if number < 0:
        print("負の数が入力されたため、ループを終了します。")
        break
    print(f"入力された数値は {number} です。")数値を入力してください(負の数で終了): 5
入力された数値は 5 です。
数値を入力してください(負の数で終了): -1
負の数が入力されたため、ループを終了します。この例では、ユーザーが負の数を入力するとbreak文が実行され、whileループが終了します。
continue文との違い
continue文の基本構文
continue文は、ループの現在の反復をスキップし、次の反復に進むための制御文です。
while文の中で特定の条件が満たされたときに、残りの処理をスキップして次のループに移行します。
基本的な構文は以下の通りです。
while 条件式:
    # ループ内の処理
    if 条件:
        continue
    # 続く処理continue文を使った具体例
以下は、continue文を使ってユーザーが入力した数値が偶数の場合に、その数値をスキップして次の入力を求める例です。
while True:
    number = int(input("数値を入力してください(0で終了): "))
    if number == 0:
        print("0が入力されたため、ループを終了します。")
        break
    if number % 2 == 0:
        print("偶数が入力されたため、次の入力を求めます。")
        continue
    print(f"入力された奇数は {number} です。")数値を入力してください(0で終了): 4
偶数が入力されたため、次の入力を求めます。
数値を入力してください(0で終了): 3
入力された奇数は 3 です。
数値を入力してください(0で終了): 0
0が入力されたため、ループを終了します。この例では、偶数が入力されるとcontinue文が実行され、print文をスキップして次の入力を求めます。
else節の活用
else節の基本構文
while文にはelse節を付けることができ、ループが正常に終了したときに実行されます。
break文でループが終了した場合、else節は実行されません。
基本的な構文は以下の通りです。
while 条件式:
    # ループ内の処理
    if 条件:
        break
else:
    # ループが正常に終了した場合の処理else節を使った具体例
以下は、else節を使って、ユーザーが特定の数値を入力しなかった場合にメッセージを表示する例です。
target = 10
while True:
    number = int(input("数値を入力してください(0で終了): "))
    if number == 0:
        print("0が入力されたため、ループを終了します。")
        break
    if number == target:
        print(f"目標の数値 {target} が入力されました。")
        break
else:
    print("目標の数値が入力されませんでした。")数値を入力してください(0で終了): 5
数値を入力してください(0で終了): 10
目標の数値 10 が入力されました。この例では、else節は実行されません。
なぜなら、目標の数値が入力されたため、break文でループが終了したからです。
応用例
ネストされたwhile文でのbreakの使用
ネストされたループの基本
ネストされたループとは、ループの中にさらにループがある構造のことを指します。
while文をネストして使用することで、複雑な繰り返し処理を実現できます。
以下は、ネストされたwhile文の基本的な構造です。
while 条件式1:
    # 外側のループの処理
    while 条件式2:
        # 内側のループの処理外側のループを抜ける方法
ネストされたループでbreak文を使用すると、通常は内側のループのみを抜けます。
外側のループを抜けるためには、フラグを使用する方法があります。
以下はその例です。
exit_outer_loop = False
while True:
    print("外側のループ")
    while True:
        print("内側のループ")
        command = input("終了するには 'exit' を入力してください: ")
        if command == 'exit':
            exit_outer_loop = True
            break
    if exit_outer_loop:
        break外側のループ
内側のループ
終了するには 'exit' を入力してください: continue
内側のループ
終了するには 'exit' を入力してください: exitこの例では、exit_outer_loopというフラグを使って、内側のループを抜けた後に外側のループも終了させています。
while文とtry-exceptの組み合わせ
例外処理の基本
try-except文は、プログラムの実行中に発生する可能性のある例外を処理するための構文です。
tryブロック内で例外が発生した場合、exceptブロックが実行されます。
基本的な構文は以下の通りです。
try:
    # 例外が発生する可能性のある処理
except 例外の種類:
    # 例外が発生した場合の処理例外発生時にループを抜ける方法
while文とtry-exceptを組み合わせることで、例外が発生した際にループを抜けることができます。
以下はその例です。
while True:
    try:
        number = int(input("整数を入力してください(0で終了): "))
        if number == 0:
            print("0が入力されたため、ループを終了します。")
            break
    except ValueError:
        print("無効な入力です。整数を入力してください。")整数を入力してください(0で終了): abc
無効な入力です。整数を入力してください。
整数を入力してください(0で終了): 0
0が入力されたため、ループを終了します。この例では、ユーザーが整数以外の値を入力した場合にValueErrorが発生し、exceptブロックでエラーメッセージを表示します。
while文と関数の組み合わせ
関数内でのwhile文の使用
関数内でwhile文を使用することで、特定の条件が満たされるまで繰り返し処理を行うことができます。
以下は、関数内でwhile文を使用する基本的な例です。
def repeat_input():
    while True:
        text = input("文字列を入力してください('exit'で終了): ")
        if text == 'exit':
            print("終了します。")
            break
        print(f"入力された文字列は {text} です。")
repeat_input()文字列を入力してください('exit'で終了): hello
入力された文字列は hello です。
文字列を入力してください('exit'で終了): exit
終了します。この例では、repeat_input関数内でwhile文を使用し、ユーザーが'exit'と入力するまで文字列を繰り返し入力させます。
関数からのループの抜け方
関数内でwhile文を使用している場合、return文を使って関数自体を終了させることもできます。
以下はその例です。
def find_target():
    target = 5
    while True:
        number = int(input("数値を入力してください: "))
        if number == target:
            print(f"目標の数値 {target} が見つかりました。")
            return
        print(f"入力された数値は {number} です。")
find_target()数値を入力してください: 3
入力された数値は 3 です。
数値を入力してください: 5
目標の数値 5 が見つかりました。この例では、ユーザーが目標の数値を入力するとreturn文が実行され、関数find_targetが終了します。
まとめ
この記事では、Pythonのwhile文を途中で抜ける方法について詳しく解説しました。
break文やcontinue文、else節の使い方を理解し、ネストされたループや例外処理との組み合わせ、関数内での使用方法についても学びました。
これらの知識を活用して、より効率的で安全なループ処理を実装してみてください。
 
![[Python] 「While True:」とは?無限ループの使い方と注意点を解説](https://af-e.net/wp-content/uploads/2024/10/thumbnail-46684.png)
![[Python] for文でのin演算子の使い方 – リストやタプルのループ処理](https://af-e.net/wp-content/uploads/2024/10/thumbnail-46683.png)
![[Python] for文の使い方をわかりやすく解説](https://af-e.net/wp-content/uploads/2024/09/thumbnail-41142.png)
![[Python] for文内のエラーをスキップする](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9093.png)
![[Python] continue文でエラーが起きる原因と対処方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9092.png)
![[Python]  ‘int’ object is not iterableエラーの解消方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9091.png)
![[Python] while文で無限ループを実装する](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9090.png)
![[Python] while文の条件式の書き方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9088.png)
![[Python] while文の使い方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9087.png)
![[Python] while文で合計を求める](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9086.png)
![[Python] リストをwhileループで処理する](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9085.png)
![[Python] while文とif文の違い](https://af-e.net/wp-content/uploads/2024/08/thumbnail-9084.png)