while文は基本的にはfor文のように繰り返し処理を実行する構文ですが、繰り返し処理を回し続けるか、ストップするかを条件式で決める事ができます。
if文は条件式毎に真偽を判定し、Trueであれば処理が実行されますが、while文は最初に条件式を設定し、Trueであり続ける限りブロックの処理が実行され続けます。
while 条件式: [スペース]処理
while文を使うと条件式がTrueであり続ける限り、処理を何度も繰り返す事ができます。
見た目はif文と似ていますが、if文では処理を確認したら次に続きますが、while文は処理が行われたらwhile文の先頭に戻るループ処理が行われます。
>>>age = 1 >>>while True: >>> print(age) >>> age += 1 1 2 3 4 5 ・ ・ ・
上のwhile文は条件式が永遠にTrueになりますので、ループから抜けることができません。
無限ループを避ける為にbreak文が用いられます。
構文は以下の通りです。
>>>if 条件式: >>>[スペース]break
訳すと、「条件式がTrueであれば、(現在の処理は)終わり。」となります。
>>>age = 1
>>>while True:
>>> print(age)
>>> age += 1
>>> if age == 10:
>>> print(str(age)+"となったので終了します")
>>> break
1
2
3
.
.
.
9
10となったので終了します
最初の無限ループ文にbreak文を挿入しました。
age == 10になった段階でbreakが発動し、while文が終了します。
if節の条件式を満たしたらループ処理を終了させるbreak文に対し、if節の条件式を満たした場合のみ処理をスキップさせるものがcontinue文です。
構文もbreak文と似ており、以下の通りです。
if 条件式: [スペース]continue
訳すと、「条件式がTrueであれば、処理をスキップせよ」です。
>>>age = 0 >>>while age < 10: >>> age += 1 >>> print(age) 1 2 3 . . . 9 10
上は1~10までを順番に表示させるコードです。
ここに偶数を(2の倍数)をスキップさせるcontinue文を挿入します。
>>>age = 0 >>>while age < 10: >>> age += 1 >>> if age % 2 == 0: >>> print("偶数です") >>> continue >>> print(age) 1 偶数です 3 偶数です 5 偶数です 7 偶数です 9 偶数です
偶数(2の倍数)であれば、print(“偶数です”)を実行してその後の処理(print(age))はスキップされていることがわかります。