【embotでプログラミングを学ぼう⑬】ずっと繰り返すプログラムを作ろう:解説編
目次
- 【embotレベル】3
- 【プログラムの技】ずっと繰り返す
- 【主に使うプログラム】while
プログラムの中のある部分を繰り返したいとき、[for]ブロックを使って「○回繰り返して」と指示する方法があります。今回は、回数を指定しないで、ずっと繰り返す技をおぼえましょう。
→参照:繰り返しの技で効率アップ【embotでプログラミングを学ぼう3】
条件が「はい」の間ずっと繰り返す
なんども繰り返し続けてほしいときには、回数で指定するのではなく「ずっと繰り返して」と指示します。ただし、「ずっと繰り返して」と指示するだけだと、プログラムは永遠に繰り返し続けて次に進むことができません。そこで、「~の間はずっと繰り返して」と、条件を一緒に指定します。
embotのプログラムで「~の間はずっと繰り返して」という指示に使うのが、「while(ホワイル)」という名前のブロックです。「while(ホワイル)」は「~の間」という意味の英語です。「while」に条件を設定して、その条件が「はい」の間はずっと繰り返すことができます。
embotでやってみよう
タブレットが机に置いてあるときはembotが音と光を出し、タブレットを傾けると音と光がとまるという仕組みを作ってみましょう。レベル3で新しいプログラムを作成したら、フローチャート作成画面で[start]、[while]、[function]、[end]ブロッックを1個ずつ置き、線でつなぎます。[while]ブロックの矢印は[function]ブロックにつなぎます。
[while]ブロックを開いて条件を設定します。ここではタブレットの「ジャイロ(傾き)Y」の値を使い、「ジャイロYが10より小さい」という条件を作ります。
ジャイロYの値は次の図の通り、-90から90で、タブレットを左側に傾けるとマイナスに、右側に傾けるとプラスになります。タブレットが右側に10°傾いた状態のとき、ジャイロYの値は10です。「ジャイロYが10より小さい」というのは、右側への傾きが10°を越えない状態です。
次の図の通り、「ジャイロY < 10」と設定してください。
次に[fuuction]を開いて音と光を出すプログラムを作成します。ライトがついてラとファの音が鳴ったらライトが消えます。
フローチャートに戻り、タブレットを机の上に置いてプログラムを実行してみましょう。タブレットが机の上に水平に置かれているとき、「ジャイロY」は0なので、[while]ブロックの条件は「はい」となり[function]のプログラムを繰り返し実行しつづけます。タブレットを右側に傾けて10°を越えると繰り返しが終わります。