今回はmicro:bitを使って条件分岐について勉強していきます。
ロボットはその時の状況によって行動を変えることが出来ます。
条件分岐は、「もし〜なら、〜する」という命令をコンピューターに教える方法です。プログラムは「もし」という条件が満たされたら、特定の動作をします。もし条件が満たされなければ、別の動作をするか、何もしません。
学校生活における例
- 朝の天気によって服装を選ぶ:
- もし朝、窓の外が晴れていたら、Tシャツを着る。
- もし朝、雨が降っていたら、レインコートを着る。
- 授業の時間割に応じた準備:
- もし今日が体育の日なら、体操服を持ってくる。
- もし図工の授業があるなら、絵の具セットを持ってくる。
割り込みブロック
割り込みブロックを使うと、ずっとブロックの処理を実行しているときに、条件を満たされたときに実行されます。
割り込みブロックは外側が長方形になっており、最初からブロックやずっとブロックに挟まなくても使うことが出来ます。
下の図はボタンAが押されたときに割り込むブロックです。
試しに、Aボタンが押されたらうれしい顔が表示され、そのほかの時は悲しい顔が表示されるプログラムを書いてみましょう。
シミュレータを確認してみます。
何もしていないと悲しい顔が表示されており、Aボタンを押したときに一瞬だけうれしい顔になります。
うれしい顔の処理がおわるとまたかなしい顔に戻ってしまいます。
割り込みブロック練習問題
今回勉強したことを活かして、じゃんけん装置を作ってみましょう。
Aボタンを押したときはグーアイコン、Bボタンを押したときはチョキアイコン、AとBボタンが同時に押されたときはパーアイコンになるプログラムを書いてください。
解答はこちらをクリック
条件分岐ブロック
割り込みブロックはボタンが押されたときだけ、一時的に呼び出されて、処理が終わるとまたずっとブロックの処理に戻るブロックでした。
この場合、Aボタンが押されている間はアイコンのをずっと表示させることはできません。
ずっとブロックの処理をしている間に、ボタンの状況によって処理の内容を変えるときには条件分岐ブロックを使います。
下の図は条件分岐ブロックです。六角形の穴に入っている条件によって処理の内容が変わります。
それではAボタンが押されているときはうれしい顔、押されていないときは悲しい顔をするプログラムを書いてみましょう。
シミュレータを確認してみてください。
先ほどとは違い、長い時間ボタンを押してみると押している間はずっとうれしい顔になっていると思います。
条件分岐ブロック練習問題
Aボタンを押している間はハート、Bボタンを押している間はダイアモンド、AとBボタンを押している間はしかく、何も押していないときは表示を消すプログラムを書いてみてください。
AボタンとBボタンを同時に動かしたときにうまくいかない人にヒント!
条件分岐ブロックは上から順番に条件を確認していくよ。