Pythonで繰り返し処理を実現する方法として「for文」と「while文」がありますが、初心者の方には少し複雑に思えるかもしれません。
そこで今回は、初心者の方にもわかるように、Pythonでのwhile文の使い方を簡単に紹介します。
for文の使い方については、以下のエントリを参考にしてください。
while文の基本的な使い方
まずはwhile文の基本的な使い方を紹介します。例として、0から4までの数字を順番に出力するサンプルプログラムをみてみましょう。
◆サンプルプログラム:
i = 0 while i < 5: print(i) i = i + 1 print('end')
◆実行結果:
0 1 2 3 4 end
while文は条件が成立しているときに、その下にある同じ数の空白でインデントされた行を繰り返し実行します。
このサンプルプログラムでは、iの値が5未満の場合に、「print(i)」と「i = i + 1」が繰り返し実行されます。
実行結果をみると、iの値が0から4まで処理が繰り返されていることがわかりますよね。
また、while文から抜け出した後に、次の処理である「print('end')」が実行されていることもわかります。
ちなみに、for文との違いは、「for文」が指定した回数ループを繰り返すのに対して、「while文」では条件が成り立つ限り(サンプルプログラムの場合は「i < 5」が成り立つ限り)ループを繰り返すところです。
while文の中断とスキップ(break, continue)
先ほどのwhile文では数字を順番に出力しましたが、途中でwhile文を止めたり、処理をスキップしたい場合があります。
まずは、while文から抜け出す方法を紹介します。次のサンプルプログラムのように「break」を使えばwhile文から抜け出すことができます。
◆サンプルプログラム:
i = 0 while i < 100: if i == 5: print('break! i=' + str(i)) break print(i) i = i + 1
◆実行結果:
0 1 2 3 4 break! i=5
本来であれば100回繰り返される処理が、「if文」の条件が成立したとき(この場合はiの値が5になった場合)に、while文からbreakで抜け出していることがわかりますよね。
if文について知りたい方は、以下のエントリを参考にしてください。
では次に、処理をスキップする方法を紹介します。次のサンプルプログラムのように「continue」を使えばcontinueより下にある処理をスキップすることができます。
◆サンプルプログラム:
i = 0 while 1: if i == 3: i = i + 1 continue if i == 5: print('break! i=' + str(i)) break print(i) i = i + 1
◆実行結果:
0 1 2 4 break! i=5
iの値が3になった場合に、continueより下にある処理がスキップされましたね。
また、「while 1:」は無限ループを意味しています。ただし、「i == 5」になった場合にbreakしているので、実際にはiが5までの処理しか行われません。
while-else文
「for-else文」と同様に、breakで抜けることなくwhile文の処理が終わった場合にだけ、ある処理を実行できる構文があります。「while-else文」です。
次のサンプルプログラムをみてください。
◆サンプルプログラム:
i = 0 while i < 5: print(i) i = i + 1 else: print('else!!')
◆実行結果:
0 1 2 3 4 else!!
while文の終了後にelseの処理が実行されました。では、次のサンプルプログラムのようにbreakでwhile文を抜けた場合はどうでしょうか。
◆サンプルプログラム:
i = 0 while i < 5: if i == 3: break print(i) i = i + 1 else: print('else!!')
◆実行結果:
0 1 2
elseの処理が実行されなくなりましたね。このように、breakすることなくwhile文の処理が終了した場合にのみ実行したい処理がある場合は、「while-else文」を使うと便利です。
最後に
今回は、Pythonの「while文」について簡単に紹介してきました。初心者の方には少し複雑に思える構文ですが、慣れると便利なので、ぜひ習得してください。
コメント