01 / 07
くり返しとデータの持ち方
INPUT · スライド
条件が成り立つあいだくり返す
02 / 07
while の形
while のうしろに条件を書いて : で閉じる。次の行から字下げして中身を書く。ここまでは if とそっくりだね。
ちがうのは、中身が終わったらまた条件に戻ってくること。条件が成り立っているあいだ、何度でもくり返すよ。
kazu = 0while kazu < 3: print(kazu) kazu += 1実行結果
0 1 2
03 / 07
次に進めるのは自分の仕事
for は次の値を勝手に用意してくれた。でもwhile は何もしてくれない。
上の例の kazu += 1 がやっているのが、その「次に進める」仕事だよ。この行を忘れると条件がずっと成り立ったままになって、プログラムが終わらなくなる。
こわいけれど、それは次のレッスンでわざと体験してみよう。
04 / 07
条件は「続ける条件」
while のうしろに書くのは「終わる条件」ではなく「続ける条件」。ここは読みまちがえやすいところだよ。
while kazu < 3: は「kazu が3より小さいあいだ続ける」。kazu が 3 になった瞬間に条件が成り立たなくなって、くり返しから抜ける。
抜けたあとの kazu を見てみると、条件をちょうど超えた値になっているのが分かるよ。
kazu = 0while kazu < 3: kazu += 1print(kazu)実行結果
3
05 / 07
1回も動かないこともある
条件は中身を動かす前に見られる。だから最初から成り立っていなければ、1回も動かないよ。
エラーにはならず、静かに飛ばされる。条件が成り立たなかった if と同じだね。
kazu = 10while kazu < 3: print(kazu) kazu += 1print("おわり")実行結果
おわり
06 / 07
for と while の使い分け
2つの道具をどう選ぶか。目安はこれだけ。
- 回数や、並んでいるものが決まっている …
for - 終わりが条件で決まる …
while
「3回」「リストの中身ぜんぶ」なら for。「お金が尽きるまで」「答えが出るまで」なら while だよ。
迷ったら for を選ぶといい。for のほうが必ず終わるぶん、安全だからね。
07 / 07
while でも合計を作れる
外に入れ物を用意して、中で足していく。for で覚えた形は while でもそのまま使えるよ。
ちがうのは進める役の変数を自分で動かすところだけ。下の例では kazu が進める役、goukei がためる役をしているね。
kazu = 1goukei = 0while kazu <= 5: goukei += kazu kazu += 1print(goukei)実行結果
15