Pythonでdo-whileループをエミュレートする方法
他のプログラミング言語ではdo-while
ループがサポートされていますが、Python
にはこの構文が存在しません。しかし、while True
ループとbreak
を組み合わせることで、同様の挙動を簡単にエミュレートすることができます。
while True
+ break
によるdo-whileの代替
以下の例は、Python
でdo-whileループのような動作を再現するコードです。
while True:
# ループの処理
do_something()
# 条件をチェックしてループを終了する
if not condition():
break
このコードは、do_something()
が少なくとも1回は実行され、その後条件に基づいてループを続けるかどうかが判断されます。while
ループとは異なり、条件はループ終了時に評価されます。
条件を最後に評価するパターン
while
ループは通常、最初に条件を評価しますが、do-whileループは少なくとも1回は必ずループを実行してから条件を評価します。上記のwhile True
パターンは、この動作をシンプルに再現できます。
実際の利用例
例えば、ユーザー入力を処理し、正しい値が入力されるまで繰り返しプロンプトを表示する場合に役立ちます。
while True:
value = input("Enter a number: ")
if value.isdigit():
break
print("Invalid input, try again.")
このコードでは、ユーザーが数字を入力するまでプロンプトを繰り返し表示します。条件が満たされればbreak
でループを抜けます。
まとめ
Python
でdo-whileループをエミュレートする最もシンプルな方法は、while True
とbreak
を使用することです。この構文により、少なくとも1回はループを実行し、後で条件を評価するパターンを簡単に実装できます。シンプルで理解しやすいので、多くのケースで利用されています。