Scratchの条件分岐「もし〜なら」とは?使い方をやさしく
「アイスに触れたら、点を入れたい」
「うんちに当たったら、ゲームオーバーにしたい」
ゲームを作っていると、こんな「〜したら、〜する」がたくさん出てきます。「アイスに触れたら点を入れる」のように、条件によってやることを変えるしくみを、Scratch(スクラッチ=ブロックを組み合わせてゲームやアニメを作る、子ども向けのプログラミング)では「条件分岐(じょうけんぶんき)」と呼びます。
先に答えを言うと、Scratchの「もし〜なら」は、条件に当てはまったときだけ、決めた動きをするためのブロックです。「アイスに触れたら得点」「うんちに触れたらゲームオーバー」のような、ゲームのルールを作るときに使います。
むずかしそうな名前ですが、中身はとてもシンプル。「もし〜なら、〜する」というブロックを使うだけです(プログラミングでは、この「もし〜なら」を if(イフ) と呼びます)。
この記事では、
- 条件分岐「もし〜なら」とは何か
- 2種類のブロック(「もし〜なら」と「もし〜なら・でなければ」)の違い
- 条件の作り方
- 6歳が作ったゲームでの実例
を、親子でわかるようにやさしく解説します。
※「スプライト」などの言葉は、記事の中でその都度やさしく補足します。
条件分岐「もし〜なら」ってなに?
条件分岐とは、ひとことで言うと「もし〜なら、〜する」という考え方です。ある条件に当てはまるときだけ、命令を実行するしくみです。
わたしたちの毎日にも、条件分岐はたくさんあります。
- もし雨が降っているなら、かさを持っていく
- もし信号が青なら、わたる
「もし〜なら」で考えて、当てはまるときだけ行動する——これと同じことを、Scratchでもブロックで作れます。
Scratchでは、「制御」(オレンジ色)のグループに、このブロックがあります。
「もし〈 〉なら」
〈 〉の部分に「条件(じょうけん)」を入れ、その中に「〜する」命令をはさみます。条件が当てはまったときだけ、中の命令が動く——これが条件分岐です。
2種類のブロック|「もし〜なら」と「でなければ」
条件分岐のブロックには、よく使う2種類があります。
①「もし〈 〉なら」
条件が当てはまったときだけ、中の命令を実行します。当てはまらなければ、何もしません。
- 例:「もし〈アイスに触れた〉なら → 点を1ふやす」
- アイスに触れていないときは、何も起きない
②「もし〈 〉なら・でなければ」
条件が当てはまったときと、当てはまらなかったときで、それぞれちがう命令を実行します。
- 例:「もし〈ゴールした〉なら → クリア!/でなければ → まだ続ける」
- 「はい」と「いいえ」で、行き先が2つに分かれるイメージ
🟠 もし〜なら:当てはまるときだけ動く(はずれたら何もしない)
🟠 もし〜なら・でなければ:当たり/はずれで、ちがうことをする(2つに分かれる)
まずは①「もし〜なら」から使えば十分です。「当たったときと、はずれたときで分けたい」と思ったら、②の出番です。
「条件」の作り方
〈 〉に入れる「条件」は、「はい・いいえ」で答えられるものを入れます。Scratchでは、こうした条件は六角形(ろっかくけい)の形をしたブロックで用意されています。よく使うのはこの3つです。
- 「〈 〉に触れた」(調べる・水色):ほかのキャラや、はし・マウスに触れたか
- 「〈 〉キーが押された」(調べる・水色):矢印キーやスペースキーが押されたか
- 「〈 〉=〈 〉」「〈 〉>〈 〉」(演算・緑):数を比べる(得点が10以上か、など)
この六角形のブロックを、「もし〈 〉なら」の〈 〉にはめこみます。たとえば、
- 「もし〈アイスに触れた〉なら → 点を1ふやす」
- 「もし〈右向き矢印キーが押された〉なら → x座標を10ずつ変える」
- 「もし〈得点>10〉なら → クリア!と言う」
のように作ります。
💡 「ずっと」と組み合わせるかは、目的しだいです。
・ゲーム中ずっと調べ続けたいとき(例:いつ触れるか分からない「アイスに触れたら得点」)は、「ずっと」の中に「もし〜なら」を入れます。
・その場で1回だけ調べたいとき(例:旗を押した瞬間に「もし得点>10なら…」)は、「ずっと」は要りません。
「もし〜なら」=1回きりの判定、「ずっと」=くり返し調べる、と分けて考えると分かりやすいです。
わが家の実例|触れたら得点・当たったら終わり
以前、6歳(当時)の子と「うんち避け+アイス拾い」というゲームを作りました(【Scratchの変数で得点をつける|6歳のゲームで体験】)。落ちてくるアイスを拾い、うんちをよけるゲームです。
このゲームは、まさに条件分岐だらけでした。
- もし〈アイスに触れた〉なら → 点を1ふやす(うれしい)
- もし〈うんちに触れた〉なら → ゲームを終わりにする(残念)
同じ「もし〈 〉に触れたなら」でも、触れた相手によって、起きることが変わる。この「触れたら〜する」が作れるようになると、ゲームが一気に「ゲームらしく」なります。
💡 Scratchに「ゲームオーバー」という専用のブロックがあるわけではありません。「もし〈うんちに触れた〉なら → 『ゲームオーバー』と言う → すべてを止める」のように、条件分岐でルールとして作るのです。「ゲームオーバー」も、自分で作るしくみのひとつ、というわけです。
子どもは「アイスは点、うんちは終わり」というルールを、遊びながら自然に理解していました。「もし〜なら」は、ルールを作るブロック——そう考えると、子どもにも伝わりやすいです。
よくあるつまずき
条件分岐で、はじめのうちにつまずきやすい点をまとめます。
- 「ずっと」の中に入れ忘れる:条件は1回調べるだけだと、その一瞬しか反応しません。「ずっと」でくり返し調べるようにします
- 命令を〈 〉の外に置いてしまう:「〜する」命令は、「もし〜なら」の囲みの中に入れます。外に置くと、条件に関係なくいつも動いてしまいます
- 反応が続きすぎる:触れている間ずっと条件が当たり続けて、点が増えすぎることがあります(わが家でも起きました)。そのときは「触れたら相手を別の場所へ動かす」などで対処します(くわしくは【Scratchの変数で得点をつける|6歳のゲームで体験】)
むずかしく感じたら、まずは「もし〈○○に触れた〉なら → ○○する」を1つ作ってみるのがおすすめです。1つ動くと、あとは同じ形で増やしていけます。
まずはこれを作ってみよう
読んだあとは、実際に手を動かすのがいちばんです。次の短いプログラムを作ってみてください。
🔁 ずっと
もし〈スペースキーが押された〉なら
「ジャンプ!」と言う
できたら、〈スペースキーが押された〉の部分を、「マウスが押された」「〈ほかのキャラ〉に触れた」などに変えてみましょう。条件を入れかえるだけで、反応するきっかけが変わる——これが体験できると、条件分岐が一気に自分のものになります。
まとめ
- 条件分岐=「もし〜なら、〜する」。条件に当てはまるときだけ命令を動かすしくみ
- ブロックは2種類:「もし〜なら」(当たりだけ動く)と「もし〜なら・でなければ」(当たり/はずれで分かれる)
- 〈 〉に入れる条件は、「触れた」「キーが押された」「数を比べる」などの六角形ブロック
- 条件をずっと調べ続けたいときは「ずっと」の中に入れる(その場で1回だけなら不要)
- わが家のゲームは「アイスに触れたら得点/うんちに触れたら終わり」=条件分岐でルールを作っていた(「ゲームオーバー」も専用ブロックでなく自分で作る)
「もし〜なら」は、ゲームのルールを作るブロックです。これが使えるようになると、「〜したら〜する」という思いつきを、どんどん形にできます。まずは1つ、「もし〈○○に触れた〉なら」を作るところから始めてみてください。
関連記事:
- Scratchの変数で得点をつける|6歳のゲームで体験(「触れたら得点/当たったら終わり」を作ったゲームの制作体験)
- Scratchの座標(x・y)とは?キャラの位置の決め方(「もし矢印キーが押されたら座標を変える」で使う、座標のしくみ)
- Scratchのブロックの種類と色の意味まとめ(「制御」「調べる」など、ブロックの色分けをまとめて確認)
- Scratchの繰り返し(ループ)とは?3つの使い分け(「もし〜なら」を入れる「ずっと」など、繰り返しのしくみ)
- Scratchで射的ゲームを作った|7歳の「作りたい」制作記(「もし〈マウスが押された〉なら発射」を実際に使った作品)
- Scratchの当たり判定とは?「触れたら〜」の作り方(「もし〈触れた〉なら」=条件分岐の代表的な使い道)