【embotでプログラミングを学ぼう⑥-1】待ってから動くプログラムを作ろう:解説編
目次
- 【embotレベル】3
- 【プログラムの技】条件が「はい」になるまで待つ
- 【主に使うプログラム】wait
「○○したら……」という条件を使うといろいろな仕組みが作れます。今回は、ある条件が「はい」の状態になるまで「待つ」という技を覚えましょう。
○○の状態になったら△△する
暗くなったら自動的に明かりがつくライトがあります。プログラミングでは、こんな風に「○○の状態になったら△△する」という仕組みを作ることができます。
「暗くなったら自動的に明かりがつく」という動作を、embotのプログラミング方法にあわせて図にしてみましょう。「暗い」という条件をずっとチェックし続けて、「はい」になるまで待ちます。「はい」(暗い状態)になったら次に進み、「明かりがつく」という動作が実行されます。
embotのプログラミングでは、このように「条件が『はい』になるのを『待つ』」という仕組みを簡単に作ることができます。状態の変化に合わせてプログラムをコントロールできるので、とても便利です。
embotでやってみよう
embotアプリで「レベル3」に設定し、新しいプログラムを作成します。今回使うのは、[wait]ブロックです。「wait」は英語で「待つ」という意味で、「ウェイト」と読みます。[wait]ブロックをステージに置き、タップして[開く]を選んで編集します。
[wait]ブロックには、条件を設定します。ここでは、「タブレットの時刻の秒が『0』」という条件を設定しましょう。[wait]ブロックの中央には「=」記号があります。この左側に「タブレット」の[秒(S)]を置きます。右側には[数]を置いて、数字を「0」と入力してください。
これで、「タブレットの時刻の秒が『0』」という条件が[wait]ブロックに設定できました。時刻の秒がちょうど0という条件です。
フローチャートの画面に戻り、[start]、[function]、[end]ブロックを追加して次の図の通り矢印でつなぎます。プログラムは[wait]ブロックまで進んだら、条件が「はい」になるまで待ちます。
次に[function]のプログラムを作ります。「タブレットの時刻の秒が『0』」になったときに実行されるプログラムです。次の図を参考に、ブザーとライトを2秒オンにするプログラムを作成してください。
フローチャートの画面に戻り、シミュレーターでプログラムを実行して確認してみましょう。[wait]ブロックが実行されると、タブレットの現在時刻の「秒」をチェックし続けて「0」になるまで待ちます。「秒」の値が「0」になるとプログラムが次に進み、[function]が実行されてライトとブザーがつきます。現在時刻の「秒」の値を知りたいときは、[秒(S)]アイコンを押すと吹き出しで表示されます。
[if]ブロックは使わないの?
「embotでプログラミングを学ぼう④」では、[if]ブロックを使って「条件によって道が分かれるプログラム」を作りました。[if]ブロックは、条件を1回チェックしてすぐに「はい○」と「いいえ×」のどちらかに進みます。[wait]ブロックのように条件をチェックし続けて、状態の変化を見張り続けることはできません。
作りたい仕組みにあわせて、[if]と[wait]のどちらのブロックがふさわしいかを選びましょう。