Pythonのwhile文は、指定した条件式が真の間、処理を繰り返し実行します。そして、条件式が偽になった時にwhile文は終了します。
while文の基本的な記述方法は以下のとおりです。
while 条件式:
処理
while文に含まれる処理は、インデント(字下げ)して記述します。処理が複数行ある場合も、全てインデントします。インデントが終わると、while文の一連の処理は終わります。また条件式の後には、必ず :(コロン)を付けてください。
Pythonでは、次の2つの方法で、関数本体内と関数本体外のTrue条件でwhileループを終了できます。
- breakステートメントを使用する: breakステートメントを使用するだけで、関数本体の外側でwhileループを終了できます。例えば、次のようなwhile文があるとします。
a = 0
while a < 3:
print("aは {0}です。 ".format(a))
a = a + 1
ここでは、変数aが0から2まで処理が繰り返されています。次に、変数aに代入する値を3に変更すると、while文の処理はスキップされ、処理結果には何も表示されません。
- while Trueとif文を組み合わせる: 最低でも1回は処理を実行したい場合、while Trueとbreakを組み合わせるなど、別の方法を使って記述することになります。while Trueとwhileの条件文にTrueを記述すると、条件が常にTrueになり、無限に繰り返し処理が続くことになります。そこで、実行したい処理に続けてif文とbreakを記述します。すると、if文の条件判定の前に処理があるので、必ず1回は実行されることになります。
a = 3
while True:
print("aは {0}です。 ".format(a))
a = a + 1
if a >= 3:
break
すると、最初の1回は処理が実行され、その後にif文の条件である変数aが3以上になり、breakでwhileのループを抜けています。
このようにして、最低限1回は処理をしたい場合、while Trueとbreakを用いて、do whileの代わりとして利用することができます。