子どもRubyプログラミング講座「ロボット編」第17回

2014/09/29

〜くりかえしをやってみよう1~(while)

piroko_jaran_ss前回は、「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までがくりかえされます。

条件しだいでは、無限(むげん)にくりかえすプログラムになってしまうので注意しよう。動きを止めたいときは、エディタ下の「止める」ボタンを押してね。

おわり