前回は、子どもたちに人気のプログラミングツール「Scratch(スクラッチ)」を使って、「順次」というプログラミングの基本を学びました。今回は、プログラミングのもう一つの基本、「分岐」をお手元のパソコンやタブレットなどで実際に体験しながら学んでいきましょう。
分岐を使うと、プログラムはもっと賢くなり、状況に応じて違う動きをさせられるようになります。
バックナンバー
第1回:教えて成瀬先生!「どうしてプログラミングを学ぶの?」
第2回:教えて成瀬先生!「どうすれば簡単にプログラムを作れるの?」Scratch(スクラッチ)で「順次」を学ぼう!
分岐を使うと、プログラムはもっと賢くなり、状況に応じて違う動きをさせられるようになります。
バックナンバー
第1回:教えて成瀬先生!「どうしてプログラミングを学ぶの?」
第2回:教えて成瀬先生!「どうすれば簡単にプログラムを作れるの?」Scratch(スクラッチ)で「順次」を学ぼう!
スイカが割れる仕組みは?
前回スクラッチで体験した「スイカ割りゲーム」を覚えていますか? 女の子のキャラクター“このはちゃん”が、スイカに近づいて、スイカに触れると、スイカが割れましたよね。

スクラッチの画面
この「キャラクターがスイカに触れたら、スイカが割れる」という動きも、プログラムによって作られた動きです。実は、②のスクリプトエリアを下の方にスクロールすると、私が用意した「キャラクターがスイカに触れたら、スイカが割れる」というプログラムが隠されていました。
では、どうやってスイカは「このはちゃんが近づいてきたことを知って」割れたのでしょうか。そこで登場するのが、今回のテーマである「分岐」です。
スクラッチで実際に手を動かしながら、分岐の仕組みについて説明していきます。
では、どうやってスイカは「このはちゃんが近づいてきたことを知って」割れたのでしょうか。そこで登場するのが、今回のテーマである「分岐」です。
スクラッチで実際に手を動かしながら、分岐の仕組みについて説明していきます。
「もし~なら」を使った分岐
スクラッチでは、分岐は「もし~なら」というブロックを使って作ります。

スクラッチの「もし〜なら」ブロック
このブロックの六角形には「条件」を入れることができます。例えば「もし『スイカに触れた』なら」という条件です。

スクラッチの「もし〜なら」ブロックの六角形の部分に「条件」を入れよう
このブロックに書いた条件どおりのことが起こったら、その後に起こることも変えられます。たとえば「『スイカに触れたら』キャラクターが発言するプログラム」で考えてみましょう。
このはちゃんがスイカに触れたら、「スイカに触れてるよ」とこのはちゃんに言ってもらうプログラムを、ブロックを組み合わせて作ります。
このはちゃんがスイカに触れたら、「スイカに触れてるよ」とこのはちゃんに言ってもらうプログラムを、ブロックを組み合わせて作ります。

ブロックを組み合わせてプログラムを作ります
ブロックを組み合わせ、プログラムを実行してみます。この時、このはちゃんとスイカの位置関係が次の画像のようだと、何が起こるでしょうか?

このはちゃんとスイカの位置関係がこんな感じだと……?
このはちゃんは、スイカに触れていませんね。つまり「もし〜なら」のブロックで指定した「スイカに触れた」という条件どおりではありません。つまり「正しくない」状態です。すると「もし~なら」のブロックで挟んだ「『スイカに触れてるよ』と『2』秒言う」という紫色のブロックはスキップされます。
では、このはちゃんとスイカの位置関係が次のようだったら?
では、このはちゃんとスイカの位置関係が次のようだったら?

このはちゃんがスイカに触れています
この場合は、このはちゃんはスイカに触れていますね。ですから「スイカに触れた」という条件どおりです。条件どおりのときは「もし~なら」のブロックで挟まれた「『スイカに触れてるよ』と『2』秒言う」が実行されて、このはちゃんが発言します。

このはちゃんが「スイカに触れてるよ」と発言します
今回はこの「もし~なら」のブロックを使って「もしスイカに触れたら、スイカを割る」プログラムを作ってみましょう。

成瀬 允宣
【GMOインターネットグループ デベロッパーエキスパート / GMOインターネットグループ アプリケーション開発本部 所属】
テックリードとしてWebアプリケーションプロダクト開発に従事するほか、大学講師やKids VALLEY プロジェクトにおける小学校プログラミング教育に携わる。また、カンファレンスなどでソフトウェア開発・設計を主軸に講演活動を行っている。
著書『ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本』
X:@nrslibi