micro:bit(マイクロビット)は、世界中で人気の教育用のプログラミング教材です!
ゲーム作りやロボットのような作品づくりができるので、プログラミング学習の効果を高めてくれる教材と言えるでしょう。
さらにmicro:bitは、ゲームやロボット作りだけではなく、プログラミングの基本的な考え方を学習するのにも向いているんです!
そこで、学びプラスでは、micro:bitを使ってプログラミングに必要な考え方を学べる 「micro:bitで学ぶプログラミング」シリーズを公開しています!
では、今回はプログラミングでは欠かせない”ループ”の考え方を学んでいきたいと思います!
目次
ループって何?
プログラミングを学んでいると、「ループ」という言葉を見かけることがあると思います。
では、この「ループ」とは何なのでしょうか?
ループとは「処理を繰り返すこと」
ループというのは、プログラムの処理を繰り返すことです。
ループは、英語では「Loop」と書き、”輪っか” という意味があります。
輪っかは、一周したら同じ場所に戻って、何周もできますよね!
輪っかと同じように、プログラミングでもループの考え方を使って、処理を繰り返すことができます。
例えば、「LEDを光らせるプログラムの処理を5回繰り返す」や「音を鳴らすプログラムの処理を5回繰り返す」などがループになります。
なぜループを使うの?
プログラミングでは、「ループ」がよく使われています。
でも、なぜ「ループ」がよく使われているのでしょうか?
簡単な例を上げるために、「Hello!と5回表示させるプログラム」を ”ループなし” と ”ループあり” で作ってみたいと思います。
ループなし
ループなしのプログラムはこのようになります。
Hello! という文字列を表示するブロックを5つ並べて、プログラムを作ることができました。
ループあり
では、ループありの場合を見たいと思います。
ループのブロックの使い方はこれから解説しますが、文字列を表示するブロックを1回だけ使い、”ループなし”のときよりプログラムを短く書くことができました。
このように、ループを使うことで、同じブロックを何度も使うことがなくなり、プログラムを短く書くことができるのです。
また、Hello!ではなくて、Good!と5回表示させるプログラムにしたい時にも、”ループなし” だと5か所の文字列を変更する必要がありますが、”ループあり”だと1か所の文字列の変更で済むので簡単です!
ループのプログラムを作ってみよう
では、micro:bitでループのプログラムを作成していきます!
なお、micro:bitでのプログラムの作り方や実行のやり方は、以下の記事で解説しておりますので、確認したい方はこちらからどうぞ!
micro:bitの「ループ」ブロック
micro:bitには、ループのためのブロックがいくつか用意されています。
ループ① ずっと繰り返すブロック
まずは、ずっと ブロックです。
このブロックは、プログラムをずっと繰り替えすことができます。
例えば、次のようなプログラムを見ていきたいと思います。
このプログラムでは、大きなハートと小さなハートが交互に表示され続けます。
詳細の動きは、 このようになります。
①で、大きなハートと小さなハートを表示
②で、プログラムの先頭に戻って、再度①を実行
①と②でループして、ずっと処理を繰り返す
この ずっと ブロックは動き続けるのが特徴のため、ゲームなどで処理を途中で止めずに動かし続けたいときに使うことができます。
ループ② 一定の回数を繰り返すブロック
次は、一定の回数だけ処理を繰り返すことができるブロックです。
「ループ」から、くりかえし ブロックを選択してきます。
このくりかえしブロックは、指定した回数だけループでプログラムを実行することができます。
例えば、次のようなプログラムで使うことができます。
詳細の動きはこのようになります。
①で、大きなハートと小さなハートを表示
②で、ループして、再度①を実行
①と②を4回繰り返す
③で、Hello!と表示
このように、くりかえしブロックの中のプログラムをループで実行して、回数が達したら次のブロックを実行していきます。
※くりかえしブロックだけでは実行スタートができないので、最初だけブロックなどの実行スタートできるブロックと一緒に使います。
ループ③ 条件判定をして繰り返すブロック
次は、条件判定をして、条件を満たしているならば繰り返すブロックです。
条件判定とは、「もし~なら」というプログラミングの考え方で、条件を満たしているならば「真」、満たしていないと「偽(ギ)」となります。
なお、プログラミングの世界では、「if文」や「条件分岐」とも言われたりします。
この、もし真ならくりかえし ブロックは、条件を満たしている(真)ときに中身のプログラムを繰り返し実行します。
例えば、次のようなプログラムで使うことができます。
このプログラムでは、ボタンAが押されているときだけループが実行されて、大きなハートと小さなハートアイコンが点灯します。
ボタンAを押していないときには、条件を満たさないので点灯しないことになります。
ループ④ カウントして繰り返すブロック
次のブロックは、ループするごとに変数をカウントして繰り返すブロックです。
このブロックは、ループするごとに変数index(インデックス)を0から増やしていき、指定した数になるまでループします。
例えば、このようにプログラムをすると、
プログラムスタート
変数indexが0になり、大きなハートと小さなハートを点灯
ループして、変数indexが1になり、大きなハートと小さなハートを点灯
ループして、変数indexが2になり、大きなハートと小さなハートを点灯
ループして、変数indexが3になり、大きなハートと小さなハートを点灯
ループして、変数indexが4になり、大きなハートと小さなハートを点灯
ループ終了
と動作します。
ポイントとしては、変数indexは0から始まるということです。
なので、この例のループは、0、1、2、3,4となり、5回ループすることになります。
プログラミングの世界では、変数indexは「ループカウンタ」とも呼ばれ、0から始まるのが一般的です。
なお、先ほどの例だと変数indexを使っていなかったので、使った例もご紹介していきます。
このプログラムではさっきの例と同じようにループを繰り返していきますが、変数indexが2になったときに、スマイルアイコンを表示します。
このように、変数indexを使って、条件判定で動作を変化させたいときなどに、カウントして繰り返すブロックを使っていくことができます。
ループ⑤ 配列を使って繰り返すブロック
次のブロックは、配列を使ったループブロックです。
このブロックは、配列の中の値を一つ一つ”変数 value”に入れて、ループを繰り返します。
配列とはデータのリストのことで、高度なブロックから「配列」を選択することで利用できます。
例えばこの下図のブロックでは、変数listは配列になっており、その配列の中には、「1」と「2」という数字が入っています。
これらのブロックを使ったループプログラム例は、以下のようになります。
このプログラムの動きとしては、以下になります。
変数listに「2」「4」「6」という値を入れる(listは配列となる)
ループ開始
変数listから「2」を取り出して、変数 valueに入れる
valueの値(2)を表示
変数listから「4」を取り出して、変数 valueに入れる
valueの値(4)を表示
変数listから「6」を取り出して、変数 valueに入れる
valueの値(6)を表示
ループ終了
ポイントとしては、変数listには順番に「2」「4」「6」が入っていて、変数valueに入れるときにもその順番になる点です。
また、配列のすべての値を取り出したら、ループは終了します。
配列であれば、文字列も利用できるので、ぜひ試してみてはいかがでしょうか!
まとめ:ループを使ったプログラムに慣れよう!
今回は、micro:bitでループの考え方について解説してきました。
ループの考え方は、プログラミングでは本当によく使われます。
なので、プログラミングをしているときにループや繰り返しの処理ができそうだと思った場合には、使って慣れていくとよいかと思います!
ループを使うことで、プログラムが簡単に書けたり、短く書けたりするのでぜひ取り入れてみてはいかがでしょうか!