[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
節の使い方を理解し、ネストされたループや例外処理との組み合わせ、関数内での使用方法についても学びました。
これらの知識を活用して、より効率的で安全なループ処理を実装してみてください。