micro:bit(マイクロビット)は、世界中で人気の教育用のプログラミング教材です!
ゲーム作りやロボットのような作品づくりができるので、プログラミング学習の効果を高めてくれる教材と言えるでしょう。
さらにmicro:bitは、ゲームやロボット作りだけではなく、プログラミングの基本的な考え方を学習するのにも向いているんです!
そこで、学びプラスでは、micro:bitを使ってプログラミングに必要な考え方を学べる 「micro:bitで学ぶプログラミング」シリーズを公開しています!
では、今回はプログラミングでよく使われる ”条件分岐” について学んでいきたいと思います!
目次
条件分岐とは?
プログラミングでは、「条件分岐」という考え方がよく使われます。
でも、「条件分岐」とは何なのでしょうか?
条件分岐は「もし~なら」の考え方をするプログラム
条件分岐とは、「もし~なら○○をする」という考え方をするプログラムです。
※少し専門的な言い方をすると、「ある条件が満たされるかどうかで、次に実行するプログラムを変化させるプログラム制御構造」のことです。
例えば、点数が10点以上取れたら、「ゲームクリア」になり、取れなかったら「ゲームオーバー」になるプログラムを見てみます。
ここでの条件は「点数が10点以上」となります。
そして、もし”10点以上”ならゲームクリアになり、もしそうでなければゲームオーバーとなります。
条件分岐は普段の生活でも使っている!
実は、条件分岐(もし~なら)の考え方は普段の生活でも使われています!
例えば、信号機は条件分岐を使っています。
信号機では、もし赤ならば止まり、もし青ならば進みます。これは条件分岐の考え方です。
また、もしのどが渇いたら飲み物を飲みますよね。これも条件分岐です。
このように身近なところで、条件分岐にもとづいて行動していることがたくさんあります。
条件の「真偽」について
条件分岐には、「真偽」という考え方があります。
条件を満たすときは「真」、満たさないときは「偽」と呼ばれます。
先ほどの、点数が10点以上取れたら「ゲームクリア」になり、取れなかったら「ゲームオーバー」になるプログラムを例にすると、
条件「点数が10点以上」を満たすときには「真」でゲームクリア、満たさないときには「偽」でゲームオーバーになります。
また、「真」は英語ではTrue(トゥルー) 、「偽」はFalse(フォルス)とも呼ばれるので覚えておきましょう!
条件分岐のプログラムを作ろう
では、micro:bitで条件分岐のプログラムを作っていきます!
なお、micro:bitでのプログラムの作り方や実行のやり方は、以下の記事で解説しておりますので、確認したい方はこちらからどうぞ!
micro:bitの「条件分岐」のブロック
micro:bitには条件分岐のブロックがいくつか用意されています。
条件分岐① 「もし~なら」を判定するブロック
一つ目のブロックは、「もし~なら○○をする」という動きをするブロックです。
「論理」から、もし真なら ブロックを選択してきます。
このブロックは、「もし~なら」で、”~” の部分が条件になっています。
この条件を満たすとき(真のとき)にブロックの中身のプログラムを実行します。
例えば、このブロックでは下のようなプログラムを作ることができます。
このブロックの動きは、条件部分がすでに「真」になっているので、ハートのアイコンが必ず表示されます。
一方で、下のようにすると、条件が「偽」になっているので、ブロックの中身は実行されず、ハートのアイコンは表示されません。
条件分岐② 「もし~なら○○して、そうでなければ」を判定するブロック
次のブロックは、「もし~なら○○をして、そうでなければ△△する」というブロックです。
このブロックは、もし条件が真なら1段目のプログラムを実行し、偽なら2段目の「でなければ」の下のプログラムを実行します。
例えば、次のようなプログラムを作ることができます。このプログラムでは、必ず「真」になるので、大きなハートアイコンが表示されます。
一方で、次のプログラムのように「もし偽なら」とすると、1段目の大きなハートを表示するプログラムは実行されないので、2段目の小さなハートを表示します。
また、このブロックの下に+マークが付いていますが、この+マークを押すと条件の段数を増やすことができます。
このブロックの動きは、以下のようになります。
もし1段目が「真」なら1段目のプログラムを実行
もし1段目が「偽」で、2段目が「真」ならば2段目のプログラムを実行
もし1段目も2段目も「偽」ならば3段目のプログラムを実行
このように、複数の条件を使ったプログラムを実行するときに活用することができます。
比較や”かつ”、”または”などを使ったプログラム
条件分岐では、数の比較をしたり、”かつ”、”または”などの考え方を使って、条件の「真」や「偽」を判定することができます。
数や文字の比較をするブロック
まずは、数や文字を比べるブロックを見ていきたいと思います。
「論理」から くらべる ブロックを選択することができます。
これらのブロックは、数字の大きさを比較したり、文字が同じかどうか比較したりできます。
例えば、下の図のように数字や文字が同じなら「真」、”3<1”のように間違っている比較のときには「偽」を返します。
このように数字の大小や、文字の比較などをすることを、プログラミングでは「比較演算」とも言ったりします。
“かつ” や “または” のブロック
次のブロックは、○○かつ△△や、○○または△△といった考え方ができるブロックです。
「論理」から 真偽値 ブロックを選択することができます。
○○かつ△△ブロックは、○○が「真」で、△△も「真」の場合に、「真」を返すブロックです。
また、○○またら△△ブロックは、○○か△△の両方かどちらかが「真」であれば、「真」を返すブロックです。
例えば、このようなプログラムの動きをします。
これらのブロックは、2つの条件をそれぞれ比較して、その結果によって次のプログラムの処理を変えたい場合に利用することができます。
なお、これらの”かつ”や”または”は、プログラミングでは論理演算とも呼ばれています。
条件分岐で簡単な占いゲームを作ってみよう!
ここまで解説したブロックを使って、micro:bitで簡単な占いゲームを作ってみました。
ゲームの内容としては、
- Aボタンを押したらゲームスタート
- ランダムに0から5までの数字を作成して、その数字の結果によって占いを行う
- 良い結果ならば♪マーク、普通ならば♩マーク、悪い結果なら傘マークを表示する
条件分岐のブロックと、数を比較するブロック、”かつ”のブロックをそれぞれ使って以下のようにプログラムを作ることができます。
0から5までのランダムな数(乱数)を作って変数indexに入れて、もしindexが0ならば♪、1~4ならば♩、それ以外(5しかない)ならば傘マークを表示しています。
このように条件分岐の考え方とランダムな数を組み合わせて使うことで、Aボタンを押すまで何が表示されるか分からないので、ゲーム性が高くなります!
また、条件分岐を使ったプログラムとしては、サイコロ作成も良く例に挙げられるので、作り方の記事を参考にしてみてはいかがでしょうか!
まとめ:条件分岐に慣れていこう
今回は、micro:bitを使って条件分岐の考え方について解説していきました。
条件分岐は、普段の生活でも使っており、プログラミングの世界でもとてもよく使われる考え方なので、慣れておくと良いでしょう!
条件分岐というと難しく聞こえますが、「もし~なら」と同じ意味なので、ゲーム作りなどでプログラミングをしながら活用していけると良いかもしれませんね!