くり返しとデータの持ち方

INPUT · スライド

条件が成り立つあいだくり返す

01 / 07

終わりが決まっていないくり返し

for は「何回まわるか」が、始まる前に決まっている。でも現実にはやってみないと分からないことも多い。

「お金が足りているあいだ買い続ける」「合格するまで受け続ける」。こういうときに使うのが while(ホワイル)だよ。

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