
Scratch 条件分岐の説明


”条件分岐”って何?
「もし~なら」という風に、”~”という条件であれば”処理を分けることを
条件分岐といいます。
”条件分岐とは、プログラム中で、ある条件が満たされているかどうかによって次に実行するプログラム上の位置を変化させること。また、そのような分岐を行うコード。
IT用語辞典 – 条件分岐 【conditional branch】
こんにちは。サポーターのもつさんです。
プログラミングのとても大事な考え方である条件分岐について解説します。
条件分岐が分かると、できることがぐっと広がります。
ぜひ最後までご覧ください。
条件分岐でつかうコマンド(ブロック)


もし~ならXXX
もし~ならXXX、でなければ△△△
この二つです
六角形の箱に、「~なら」の~が入ります。
つまり、条件を表すブロックが入ります。
(補足)Scratchのブロックの形
Scratchのブロックには様々な形があります。


長方形のブロックは、これ単体で一つのコマンドになります。


丸型のブロックは、長方形や六角形のブロックの丸いところに入れて使います。
例)X座標という丸型のブロックを、こんにちは!と2秒言うの(こんにちは)に入れると




このようにスプライト(ネコ)のX座標を教えてくれるコマンドを書くことができます。
(この例だと、ネコはX座標が-171の位置にいて、それを表示しています)
(X座標)という丸型のブロックには、ネコのX座標が入っているのですが、
これだけでは使うことができません。
「こんにちは」と(2)秒言う
のように長方形のブロックと合体することで使うことができます。


六角形ののブロックは、長方形のブロックの六角形のところに入れて使います。
六角形のブロックは、条件を表します
今回の条件分岐で、もし~ならの「~」を表すのがこの六角形のブロックです


これで条件文のできあがりです
いろいろな六角形ブロック


六角形のブロックにはいろんな種類があり、
これらを使うことで、できることが広がります。
たとえば、<スペースキーが押された>のブロック
(スペース)のところは、選ぶことができて、キーボードのキーを指定することができます。
条件分岐を使ったプログラムの例
もしCrabに触れたなら、「こんにちは」と言う
このように、<Crabに触れた>をもし~なら
に入れることで、「もしCrabに触れたなら」という条件分岐を書くことができます
さらに、「もしCrabに触れたなら」の中に、コマンド(ブロック)を書くことで、条件分岐の出来上がりです!
もしCrabに触れたなら、こんにちは!と2秒言う
が出来上がりました。
ライフが0になったら、GAMEOVERと画面に表示する
”敵に当たったらライフが減る”というゲームをつくったときに
ライフが0になったらGAME OVERにするというプログラムをつくります。
ライフは変数でつくり、もしライフ=0なら、GAME OVERというスプライトを表示します。




まとめ
今回は条件分岐について解説しました。
もしCrabに触れたなら、こんにちはと言う
のように、ある条件のときだけ有効なコマンド(ブロック)を書きたいときに使います。