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 Truebreakを使用することです。この構文により、少なくとも1回はループを実行し、後で条件を評価するパターンを簡単に実装できます。シンプルで理解しやすいので、多くのケースで利用されています。