while文について学んでいきましょう。
while文は、条件の結果がTrueであれば、ブロック内のコードが繰り返し実行されます。
補足while文はif文に近いですので、まだif文について学んでいないのであれば、if文を先に理解した方が良いかもしれません。
具体的なコードをみていきましょう。
コード1 number = 5
2 while number > 0:
3 print(number)
4 number = number -1
アウトプット5
4
3
2
1
0
コードの解説(1) 1行目で、変数numberに整数5を代入します。
(2) 2行目に出てくるのがwhile文です。このコードでは「number<0」が処理を繰り返しをするかを決める判断基準(条件)です。つまり、number<0がTrueである限り、ブロックが実行されます。
(3) 2行目の判定基準は5<0(number<0)、つまりTrueですので、3行目が実行され、変数numberが出力されます。
(4) 4行目で、変数numberの数を1つ減らします。
(5) 再び2行目に戻り、while文が実行されます。今回はnumberが4になっていますが、それでも0よりは大きいですので、3行目以降のコードが実行されます。
上記の通り、while文は条件がTrueである限り実行し続けますので、どのタイミングでTrueの条件を外すのかを考えておくと良いでしょう。
次に、while文を使うにあたって知っておいた方が良いことを学んでいきましょう。
else文を付けることもできる
while文は、if文と同じようにelse文を付けることができます。
具体的なコードで見ていきましょう。
コード1 number = 5
2 while number > 0:
3 print(number)
4 number = number -1
5 else:
6 print('below 0!')
アウトプット5
4
3
2
1
0
below 0!
while文の条件判定がTrueの間はwhileの下のブロックが実行され、条件判定がFalseになった場合はelse以下のブロックが実行されていることが分かります。
break文や、continue文と合わせて使うと良い
while文をより効果的に使うためには、breakとcontinue文について学ぶと良いです。
この2つについては、break・continue文という記事で紹介していますので、ぜひ参考にしてみて下さい。
while文のまとめ
(1) 条件がTrueである限りずっとブロックが実行されるので、無限ループにならないように注意する必要がある
while文を学んだあとは
while文をさらに効果的に使うために、break・continue文について学んでいきましょう。