Pythonの繰り返し:while文

他の言語と同様、Python にも繰り返しを実現するために for 文と while 文があります。ここでは Python における繰り返し文の while文について説明します。

while 文の使い方

Python における while 文の記述方法は以下の通りです。

条件式は if 文と同様に比較演算子、論理演算子を使って記述します。while 文は条件が真である間、ブロック内の処理を繰り返し実行します。Pythonには他の言語で見られる do while 文はありません。

while 文による繰り返し

次の例は、0から5の整数を出力するサンプルプログラムです。

実行結果

上のサンプルムログラムの解説をします。まず、 変数 i は 0 で初期化され、 while 文の条件式 i <= 5 が評価されます。0 <= 5 は真なので、while ループ内の print 0 が実行されます。そして i = i + 1 が実行し  i の値を 1 増やします(これをインクリメントと呼びます)。1回目のループ内の処理が終了すると、 また i <= 5 すなわち 1 <= 5 の条件式が評価されます。これも真なので、またループ内の処理が実行されます。最終的に i が 6 になると 6 <= 5 は偽となるので、while ループから抜け出しプログラムが終了します。

i をインクリメントすることを書き忘れてしまうと、i の値は 0 のままとなるため、永遠に条件式が真となり、ループが止まらなくなり無限ループが発生してしまうので注意が必要です。ちなみに i = i + 1 は i += 1 と記述することもできます。

while ループを抜け出す:break

ループ内である条件になったときにループを抜け出したい場合は break 文を使用します。

実行結果

1つ目の例と同じように i の値を出力しながらループが繰り返されますが、 i が  2 になったとき print i が表示された後に break 文が実行されループから抜け出し処理が終了します。したがって、 i = 2 のときは break 文の後の i = i + 1 は実行されません。

while ループの処理を次へジャンプする:continue

ループ内である条件のときに処理をジャンプしたい場合は continue 文を使用します。

実行結果

1つ目の例と同じように i の値を出力しながらループが繰り返されますが、 i が 2 になったときに i をインクリメントし continue 文で次の繰り返しへジャンプしています。したがって、 continue 文が実行された後の print i と i = i + 1 は実行されないので、2 が出力されていないのことが実行結果から確認できます。

意図的に無限ループを作る

無限ループを意図的に実現したい場合は、条件式に true を指定します。次のサンプルプログラムを見てみましょう。

上記のプログラムでは、無限ループを使って i の値をインクリメントしていきますが、i の値が 100 以上になった時点で breakを使ってループから抜け出しています。このような無限ループは標準入力待ちやリクエスト待ちなどの際によく使用されます。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて

UX MILKのディレクター募集