
【Robo Blocksの使い方】もし〜ならなど条件で分岐するブロック_その2 ブロック一覧
ソフトバンクロボティクスでPepperを使ったプログラミング教育を担当してる佐藤です!
前回の記事に引き続き、制御ブロックについて見ていきます!
今回は、1つ1つのブロックの使い方についてご紹介いたします!
制御ブロックの一覧
もし()なら

条件分岐を作るための、最も基本的な制御ブロックです。
6角形の穴に真偽ブロックを入れて使います。(真偽ブロックについてはこちらの記事でご紹介しています)
真偽ブロックの値が真(true)なら挟んだブロックが動きます。
もし () なら, そうでなければ

もし()ならブロックに、そうでなければという条件が追加されたブロックです。クイズプログラムなどで、以下のように正解以外に対して同じ反応を返す場合などに便利です。

また、もし()ならを2個使って2択にしているプログラムは、ほとんどの場合これを使って以下のように条件を1つ減らしてシンプルなプログラムにすることができます。

()になるまで繰り返す

繰り返し処理に使うブロックです。()の条件がtureになるまで繰り返し処理を行います。プログラム内で動的に繰り返し回数を設定したいような時に便利です。
例えば以下の例では、リストの長さ回繰り返しを行って、リストの中身を全て発話します。こうしておくとリストの長さが10である時も100である時も同じプログラムで発話することができます。

()になるまで繰り返すブロックは、こちらの記事でも使い方を紹介しております。
()回繰り返す

こちらはシンプルに回数を指定して、その回数ループ処理を行うブロックです。繰り返し回数が決まっているときに使うと便利です。こちらを使って先ほどのリストの長さ回数繰り返す処理を作るなら、以下のようになります。

()回繰り返すブロックは動き始める瞬間の()の値の数だけループします。
例えば処理の長さでリストの長さが変わった場合、処理を始める前の回数でループしますので、処理の中で条件が変わるようなプログラムにしたい場合は()になるまで繰り返すブロックを使う方が良い場面が多いと思います。
()秒待つ

()に入れた秒数分、プログラムがそこで停止するブロックです。
しゃべる間隔やタイミングの調整などに便利です。
()を止める

処理を途中で止めることができるブロックです。()は「すべて」か「このかたまり」か選ぶことができます。
無限ループと組み合わせて使うことが多いブロックです。
以下は、プログラムがスタートしたら無限ループで秒数を計測し、頭を触られたら計測を停止するという例です。

止めて一覧に戻る

プログラムを止めてプログラムの一覧に戻ります。
プログラムの最後に入れて、自動で終了するような使い方が多いです。
後ろバンパなど、あまり使わないセンサと組み合わせてプログラムのストップボタンとして使うこともできます。

まとめ
この記事では制御ブロックを紹介しました。
この処理ならこのブロックを使えば簡単に作れた、ということがありますので自分が作りたい処理はどのブロックを使うと楽に作ることができるのか、作り始める前に比べてみると良いと思います!
また、条件分岐と繰り返し処理は非常に使い所が多いブロックですので、これらのブロックをマスターすると、プログラミングできる処理が大幅に増えます、
是非たくさん使って使い方に慣れてみてください!