見出し画像

【Robo Blocksの使い方】「AかつB」などの条件を表すブロックの使い分け

ソフトバンクロボティクスでPepperを使ったプログラミング教育を担当してる佐藤です!
今回は今までの記事の中にも何度か出てきた「○かつ△」のような、条件を表す六角形のブロックの使い方をまとめたいと思います!


真偽ブロック

六角形のブロックは正式には「真偽ブロック」といいます。真偽とは正しいか正しくないかという意味ですから、真偽ブロックは必ず"正しい"か"正しくない"のどちらかの値になります。
プログラムの世界では"正しい"ことを"true"、"正しくない"ことを"false"で表すことがほとんどです。Robo Blocksでもブロックをクリックして値を見てみると、どちらかの値が表示されることが確認できます。

正しい時
正しくない時

Robo Blocksの真偽ブロック

Robo Blocksには真偽ブロックが6種類用意されています。

2つの値を比較する真偽ブロック

まずは値を比較する3つのブロックをご紹介します。

比較ブロック

<と>は左辺と右辺に数字が入り、それらを比較してくれるシンプルなブロックです。両辺には数字しか入れられないので、例えば「こんにちは」と「あけましておめでとうございます」の文字列の長さを比較したい場合は、文字列を数字に変えてくれるブロック”〜の長さブロック”を間に挟む必要があります。

うまく動かない例
”〜の長さブロック”を使って期待通り動く例

=は少し特殊で、数字のほかに文字列も比較することができます。

=は文字列も比較できる

条件の組み合わせができる真偽ブロック

残りは条件を組み合わせることができるブロックが3つです。

条件を組み合わせることができる真偽ブロック

これらのブロックには6角形の穴が空いていますので、真偽ブロックを組み合わせることができます。

"AかつBブロック"は、AとBがともにtrue(正しい)の場合にのみtrueになります。
"AまたはBブロック"は、AかBのどちらかがtrueならばtrueになります。

どちらがいいかは場合によりますので、自分が作りたい条件にはどちらが合うか検討するようにしましょう。

"AかつBブロック"と"AまたはBブロック"の比較

"Aでない"ブロックは以下のようにAがtrueならfalseに、Aがfalseならtrueに真偽を逆にしてくれるブロックです。

1=1はtrueなのでfalseになる
1=2はfalseなのでtrueになる

trueの時に実行したくない処理があるような場合や、逆にfalseの時にのみ実行したい処理があるときに条件分岐と組み合わせて使うと便利です。

まとめ

今回は真偽ブロックについて紹介しました。”もし〜なら”の条件分岐の条件に使うブロックですので、かなり利用頻度が高いブロックだと思います。
似たような働きをするため少し混乱しやすいブロックですので、使い方を振り返りながら試行錯誤してみてください!

余談ですが、真偽ブロックはプログラムの中で値が変わるので変数と見ることもできます。この必ずtrueとfalseのどちらかになる変数を真理値や真偽値などと呼び、多くのプログラミング言語ではこれを表すデータ型をboolean型と呼びます。
また、<や=のような単純に値を比較する演算子(Robo Blocksの場合はブロック)を関係演算子、AまたはBなどの条件を組み合わせることができる演算子を論理演算子と呼びます。

プログラミング学習のレベルが上がっていくと目にする単語だと思いますので、興味があるお子さんには専門用語として紹介してあげるのも良いかもしれません!