貯金は、いつ目標に届く?
新しいスマホのために、毎月3000円ずつ貯金します。目標は10000円です。
何か月かかるでしょうか。
for は、回数が決まっているときに使いました。でも今は、回数がわかりません。
「目標に届くまで」くり返す、新しい書き方を学びます。
今日のキーワード
| ことば | いみ | れい |
|---|---|---|
| while | 条件が正しいあいだ、くり返す命令です。 | while saved < goal: |
| 条件 | 正しいか正しくないかを調べる式です。 | saved < goal |
| カウンター | 何回目かを数えるための変数です。 | count = count + 1 |
| 無限ループ | 終わらずに、ずっとくり返してしまうことです。 | 条件を変える行がない |
| 更新 | 変数の値を、新しい値に入れかえることです。 | saved = saved + 3000 |
学生が入力するセルは、このプレビューでは空白です。
while の書き方
while 条件: と書きます。条件が正しいあいだ、インデントした行をくり返します。
条件を調べるのは、くり返しの前です。最初から正しくなければ、一度も動きません。
if と同じで、行の最後に : を付けます。
やってみよう: 1から3まで
count = 1
while count <= 3:
print(count, "回目")
# count を1ふやします。これが「更新」です。
count = count + 1
print("おわり")
# 3 を 5 に変えて、実行しましょう。
やってみよう: 貯金の計算
goal = 10000
saved = 0
months = 0
while saved < goal:
saved = saved + 3000
months = months + 1
print(months, "か月目:", saved, "円")
print("目標に届くのは", months, "か月後です。")
# 3000 を 2000 に変えると、何か月になりますか。
例: 目標1000円、毎月300円
| くり返し | saved の値 | months の値 | saved < 1000 か |
|---|---|---|---|
| はじめ | 0 | 0 | はい |
| 1回目のあと | 300 | 1 | はい |
| 2回目のあと | 600 | 2 | はい |
| 3回目のあと | 900 | 3 | はい |
| 4回目のあと | 1200 | 4 | いいえ。ここで終わり |
学生が入力するセルは、このプレビューでは空白です。
小さな確認: while
やってみよう
小さな確認: while
3問挑戦してみましょう。回答はここで採点され、その後は保存されません。点数を残したい場合や、続きから再開したい場合はログインしてください。ログインして点数を保存
答えはここで採点され、保存されません。アカウントがあれば、結果が残ります。
終わらないくり返しに注意
注意
count = count + 1 のような更新の行を書き忘れると、条件がずっと正しいままで、終わりません。これを無限ループといいます。実行が止まらなくなったら、停止ボタンを押しましょう。