〜くりかえしをやってみよう1~(while)
前回は、「num = num + 1」で箱に入っている数を1ずつふやしていき、x.times doと組み合わせることで、くり返しをするやり方をおぼえました。今回はwhile(ワイル|〜の間)を使ってくりかえすやり方をみていきます。timesでは、3.times doのようにくりかえす回数を指定(してい)しますが、whileは、あとにつづく条件(じょうけん)に合うかぎり、whileとendの間にある命令をくりかえします。エディタに次のプログラムを入れて「動かす」ボタンを押してみよう。
num = 0 while num < 5 puts num num = num + 1 end
0
1
2
3
4
0から4までの数字が表示されたかな。
プログラムのせつめい
1行目
numという名前のついた箱に0を入れる
3行目
numに入っている数が5より小さい間、endまでの命令をくり返しなさい。
4行目
numに入っている数を表示しなさい
5行目
numに入っている数に1を加えて、numに入れなおしなさい。
上のプログラムではnumに入っている数は1ずつふえていき、numが5より小さいという条件を満たさなくなったとき、つまり、numに5が入ったときにくりかえしが終わります。
ロボットで動きを確認しよう
whileでくりかえしができるしくみがわかったかな。では、whileを使って、「○○回目」と表示しながら、ロボットに5回同じ動きをさせるプログラムを書いてみよう。
require "mi100" robo = Mi100.new "COM3" num = 1 while num <= 5 puts num.to_s +"回目" robo.movef robo.spinr robo.blink num = num + 1 end robo.close
プログラムのせつめい
1行目〜3行目
ロボットを無線で動かせるようにするための、いつものステップですね。
5行目
numという名前のついた箱に1を入れなさい。
7行目
<= は、左が「右より小さい」、「右と同じ」という2つの条件のいずれかを満たすかしらべなさいという命令。
このプログラムでは、numに入っている数が5と同じか5より小さければ条件を満たし、次の命令に進みます。
8行目
numに入っている数をto_sで文字列に変えて、「○○回目」と表示します。
9行目〜11行目
ロボットを動かします。好きな動きをさせよう。
12行目
numに入っている数に1をたして、そのこたえをnumに入れなおしなさい
num <= 5の条件を満たすかぎり、whileからendまでがくりかえされます。
条件しだいでは、無限(むげん)にくりかえすプログラムになってしまうので注意しよう。動きを止めたいときは、エディタ下の「止める」ボタンを押してね。
おわり