〜 くりかえしをやってみよう(until)〜
前回は while(ワイル|〜の間)を使ってくりかえすやり方をおぼえました。今回は、whileと同じように、条件に合うかどうかでくりかえしをさせる until(アンティル|~まで)の使い方をみてみましょう。whileは条件(じょうけん)を満たすかぎり、同じ処理(しょり)をくりかえしますが、until は条件を満たすまでくりかえしが行われます。エディタに次のプログラムを入れて「動かす」ボタンを押してみよう。
num = 0 until num >= 5 puts num num = num + 1 end
0
1
2
3
4
0から4までの数字が表示されたかな。
プログラムのせつめい
1行目
numという名前のついた箱に0を入れなさい
3行目
numに入っている数が「5と同じ」、「5より大きい」のいずれかを満たすまで、endまでの命令をくり返しなさい。
4行目
numに入っている数を表示しなさい
5行目
numに入っている数に1を加えて、numに入れなおしなさい
numに1ずつ大きい数を入れなおしながら、同じ処理(しょり)がくりかえされます。このプログラムでは「5と同じ」という条件を満たしたとき、つまり、numに5が入ったときにくりかえしが終わります。
*プログラムの3行目を、while num < 5 にかえても結果が同じになることを確認しよう。
ロボットで動きを確認しよう
ここで問題を出すよ。ロボットはキャンディーを10個もっています。そのうち5個を残しておいて、あとの5個をひとつずつ友だちにくばります。これを until を使ったプログラムで書くとどうなるでしょう。じっさいにキャンディーをくばることはできないので、そのかわりに5回「ピポパ」とならして出力タブに「キャンディーあげるよ」と表示しよう。
require "mi100" robo = Mi100.new "COM3" num = 10 until num <= 5 robo.movef robo.spinr robo.good puts "キャンディーあげるよ" num = num - 1 end puts "" puts "残りはボクのぶん" robo.close
プログラムのせつめい
1行目〜3行目
ロボットを無線で動かせるようにするための、いつものステップですね。
5行目
numという名前のついた箱に10を入れなさい。キャンディーは10個だから。
7行目
numに入っている数が5と同じ、または5より小さいという条件を満たすまで、endまでの命令をくり返しなさい。
12行目
numに入っている数から1を引いて、numに入れなおしなさい。キャンディーの数は、くばるたびに1ずつへっていきますね。
num <= 5の条件を満たすまで、untilとendの間の命令がくりかえされます。numに5が入ったときにくり返しが終わり、15行目の命令に進みます。
15行目
“”で空白行を入れます
16行目
好きなセリフを入れてみよう。
おわり