【micro:bit 分岐】プログラムの分かれ道を作ってみよう!

micro:bitでプログラミング
この記事は約8分で読めます。

こんにちは、ナナです。

プログラムの要素ようそとして「分岐ぶんき」とばれるものがあります。

プログラムは順番じゅんばんすすみますが、分岐を使うことでプログラムがすすみちえることができます。

この記事きじでは、次のことを学習がくしゅうできます。

この記事で学習できること
  • 分岐ぶんきってなに?
  • 「もし」ブロックを使つかった分岐ぶんきつくかた
  • 分岐ぶんきで使われる条件式じょうけんしき真偽値しんぎちってなに?
  • 「もし」ブロックへの条件式じょうけんしき設定方法せっていほうほう
  • 「もし」ブロックを使った分岐ぶんきプログラムの作り方

では、makecodeを使ったプログラムの分岐ぶんき方法ほうほうまなんでいきましょう。

スポンサー

プログラムが分岐するってどういうこと?

よ!プログラムの世界せかいには「分岐ぶんき」とばれるわざがあると聞いたことがあります。「分岐」についておしえてください。

ナナ
ナナ

「分岐」はプログラミングを行うためにすごく大事だいじわざなんだよ。

分岐ぶんきを使うと「もし~だったら~しよう」みたいなプログラムをつくることができるようになるよ。

「分岐」とはかれみちのことです。分岐を使うことでプログラムのすすみちえることができます。

生活の中でも登場する「分岐」ってなに?

みんなは普段ふだん生活せいかつしている中で、どれにしようか選択せんたくまようことってありますよね。

たとえば、

おなかがいたけど、チョコレートを食べようか、ポテトチップスを食べようか?

チョコレートとポテチ

雨がりそうだけどかさを持っていこうか、持たないで出かけようか?

傘を持っていくべきか

このように、いくつかの選択肢せんたくしがある状況じょうきょうは「分岐ぶんき」とばれ、えらんだものによって行動こうどうわりますね。

プログラムで分岐を使うとどんなことができるの?

プログラムもおなじように、「分岐」を使つかって実行じっこうされるプログラムを変化へんかさせることができます。

たとえば、次のように「A」「B」のスイッチが押されているかどうかで分岐ぶんきつくったとしましょう。

分岐フローチャート

分岐の質問しつもんに対して「はい」「いいえ」にこたえて、すすむべき道がまります。これが「分岐ぶんき」です。

ナナ
ナナ

このようなプログラムのみちしめしたのことを「フローチャート」とびます。

スポンサー

分岐を作る「もし」ブロックを使ってみよう

おのすすむべき道を間違まちがうことなどないっ!自分の前にどれだけ道が分かれていようとだっ!

かかってこい「分岐ぶんき」め、火遁かとんじゅつやしくしてみせよう。忍道にんどうまよいなし‼

ナナ
ナナ

「分岐」はね、てきじゃないからね。かかってこないよ。

「分岐」を使うことで、プログラミングのはばはすごくひろがるよ。分岐ぶんきはプログラムの基本要素きほんようその1つなんだよ。

プログラムで分岐を作るには、「もし」ブロックを使います。

「もし」ブロックの使い方

「もし」ブロックは、「論理ろんり」ブロック一覧いちらんの中に用意よういされています。条件判断じょうけんはんだんと呼ばれる場所ばしょにあるのがわかりますね。

もしブロックを選択

「もし」ブロックの条件式と真偽値ってなに?

分岐ぶんきとは「もし△△△だったら、〇〇〇をしよう。そうじゃなければ◇◇◇をしよう」というかたちのプログラムのことです。

この「△△△」の部分ぶぶん条件式じょうけんしきと呼び、かれ道ですすむべき方向ほうこうめるための質問しつもんになります。

条件式と真偽値

条件式じょうけんしきという質問しつもんの答えは、かならず「はい」「いいえ」のどちらかにになります。これを真偽値しんぎちと呼びます。

条件式の答えとなる真偽値の意味
  • しん ・・・質問の答えが「はい」を意味する。
  •  ・・・質問の答えが「いいえ」を意味する。
ナナ
ナナ

条件式の質問は、必ず「はい」「いいえ」のどちらかで答えられるような質問でないといけません。

「もし」ブロックへの条件式の設定方法

「もし」ブロックの中にある<真▽>の場所ばしょには、条件式じょうけんしきを示すブロックを入れる必要ひつようがあります。

かたちが同じブロックを条件式じょうけんしきとして入れるんですよ。

もしブロックへ入れる条件式

では、条件式として「Aボタンが押されている」ならを表すブロックを入れてみましょう。

ボタンを押しているブロックを条件式へ

「入力」ブロック一覧いちらんの中には「ボタンが押されている」ブロックがあります。「もし」ブロックの中の形と、同じ形になっているのがわかりますね。

「もし」ブロックへの条件式の追加と削除

「もし」ブロックは⊕⊖をクリックすることで、条件式じょうけんしき追加ついか削除さくじょすることもできます。

条件式の追加と削除
ナナ
ナナ

⊕と⊖をクリックすることで、様々さまざま条件式じょうけんしきのパターンをつくることができるよ!

スポンサー

「もし」ブロックを使って分岐するプログラミングをしてみよう!

師よ!「もし」ブロックの使い方は把握はあくしましたよ。でもね、大事だいじなのは実践じっせんなんですよ。じゅつ何度なんども使うことで体におぼえさせるんです。

早く実践に入りましょう。からだがプログラミングをほっしていますっ。

ナナ
ナナ

そのとおりだね。プログラミングは何度もやってけるものだね。じゃあ、「もし」ブロックを使ってプログラミングをしてみようね!

では、ここまで学んだ「もし」ブロックを使って、プログラミングをしてみましょう。

「ずっと」ブロックに「もし」ブロックを入れて分岐してみよう

「A」スイッチがされている時に、「ハートマーク」を表示ひょうじするプログラムを作ってみましょう。スイッチを押していない時は、表示をしてみます。

Aスイッチを押したときにハート

プログラムができたら、画面左上のシミュレータの「A」スイッチを押してみましょう。

ナナ
ナナ

ブロックをわせて目的もくてきのプログラムを実現じつげんする。これがプログラミングです。

スポンサー

やってみようコーナー:分岐プログラミングの巻

ナナ
ナナ

「もし」ブロックを使った分岐のプログラムを作ってみよう!

修行その1:「もし」ブロックを使った分岐プログラム

修行内容

この記事きじの中で登場とうじょうした、次のフローチャートを「ずっと」ブロックの中に入れて、プログラミングしてみましょう。

問題のフローチャート

「A」「B」スイッチが押されているかによって、LEDの表示ひょうじ変化へんかさせるプログラムです。

プログラムができたら、次のように動くかを確認かくにんしてみましょう。

  • 「A」スイッチを押している時 ・・・六芒星が表示
  • 「B」スイッチを押している時 ・・・ハートマークが表示
  • スイッチを押していない時   ・・・なにも表示されない

いてかんがえるんだ…。分岐ぶんきのパターンをプログラミングの形に変化へんかさせればできるはずだ…。

見えたぞっ!

使用するブロック一覧
  • 「ずっと」
  • 「もし」
  • 「ボタンが押されている」×2
  • 「LED画面に表示」
  • 「アイコンを表示」
  • 「表示を消す」

プログラミング例

もしブロックを使ったプログラム例
ナナ
ナナ

みんなの作ったプログラムとちがいはあるかな?プログラムのかたはいろいろあるから、一緒いっしょじゃなくても大丈夫だいじょうぶだよ!

修行その2:条件式の順番に潜んだ罠

修行内容:修行その1にプログラムを追加してみよう

「A+B」の両方りょうほうのスイッチを押している時に、LEDに「キリン」アイコンを表示するプログラムを追加ついかしてください。

プログラムができたら、次のように動くかを確認かくにんしてみましょう。

  • 「A」スイッチを押している時  ・・・六芒星が表示
  • 「B」スイッチを押している時  ・・・ハートマークが表示
  • 「A+B」スイッチを押している時 ・・・キリンマークが表示
  • スイッチを押していない時    ・・・なにも表示されない

やけに簡単かんたん修行しゅぎょうだな。「A+B」の条件じょうけん追加ついかすればいいだけだろ。

しかし、あの師範しはんがそんな簡単かんたん修行しゅぎょうをさせるだろうか?ひょっとして何かわな仕掛しかけられているのでは?よく考えろ…。

注意ちゅういしなければならないのは、「条件式」というのは最初さいしょ設定せっていされたブロックから順番じゅんばん質問しつもんこたえていくことになります。

そのため、「A+B」を最後さいご条件式じょうけんしき追加ついかしてしまうと、最初さいしょの「A」スイッチの質問しつもんが「はい」となってしまい、目的もくてきのキリンマークが表示ひょうじできません。

AとBを押したときのプログラムの正誤図

そのため、「A+B」の条件式は一番最初いちばんさいしょ指定していする必要ひつようがあります。

ナナ
ナナ

みんなはわなっかからなかったかな?

こんなふうにプログラムって順番じゅんばんわるだけでも、うご内容ないようわってしまうんだよ。注意ちゅういしようね!