while文によるループ
while文は「反復処理」です。
反復処理は、決まった条件が満たされているあいだは、何度でも同じことを繰り返す、という処理です。
while文
while文は
while 条件式: 処理1 処理2
というように書き、条件式の判定結果がTrueの間は処理を繰り返して実行します。
while文も、if 文と同様、条件式の後に’:'(コロン)が必要です。
また、while文で実行する処理はインデントする必要があります。
while文と、その後に続くインデントされたブロックを、while節 と言います。
注意:while文は、ループを脱出するための条件式の記述を誤ると永久にループを実行し続ける「無限ループ」に陥ってしまうことがあります。
万が一、プログラムを実行して無限ループに陥った場合は、実行しているプログラムで下記のキーを押すとプログラムを強制終了させることができます。
Windowsの場合 | Ctrl を押しながら C |
Macの場合 | control を押しながら C |
ただ、この方法はプログラムを終了させるものですので、while 文のループを脱出するための条件式の記述は気をつけて書くようにしてください。
break文
while文は条件式の判定結果がFalseになるとループを終了しますが、それ以外にもこのbreak文を使って、ループ内の処理の途中でもループ処理から脱出させることができます
a = 0 print('ループ開始') # whileによるループ処理 while a < 20: a = a + 1 print(a) if a >= 10: break # <-- ここでループを脱出します # ループ処理の外 print('ループ終了')こ
この例では、ループの条件式は「’a < 20′(aが20より小さい)の間はループを続ける」なのですが、実行すると出力される結果は下記のようになります
ループ開始 1 2 3 4 5 6 7 8 9 10 ループ終了
ループ中の変数aの値が10でループが終了しています。これは「’if a >= 10’と次の行の’break’」で「もしaの値が10以上であれば、breakでループを脱出する」となっているためです。
continue文
break 文はループ処理の途中でループを脱出しますが、この continue 文は、ループ処理の途中で「ループの先頭の戻る」ということができます。
これは、ループ中の処理である条件のときに、ループ中の以降の処理は行わずにループの先頭に処理を戻すときに使用します。
a = 0 print('ループ開始') # whileによるループ処理 while a < 10: a = a + 1 if (a % 2) != 0: continue # <-- ここでループの先頭に戻ります print("偶数の値:", a) # ループ処理の外 print('ループ終了')
このコードは実行すると下記のような表示を行います
ループ開始 偶数の値: 2 偶数の値: 4 偶数の値: 6 偶数の値: 8 偶数の値: 10 ループ終了
ループそのものでは変数 a の値は0から1ずつ加算しているのですが、表示は偶数の時しか行っていません。これは、’if (a % 2) != 0:’で a の値が偶数かの判定を行い、偶数ではない(奇数だった)ときは continue 文でループの先頭に戻るようになっているためです。
for文
こちらも反復処理の一種で、指定した回数やデータに対して反復処理を実行できるのですが、使用するデータの関係(’リスト’というデータなどを使用します)から詳細は別途説明します。
下記のようなコードを書いて実行すると、iという変数に1 → 2 → 4 → 5を順番に代入し、print()関数を呼び出して変数 iの値を表示します。
例)
for i in [1, 2, 4, 5]: print(i)
ここでは、for文という反復処理があるということだけ書かせていただきました。