2020年からの小学校でのプログラミング教育必修化に伴って、プログラミングへの関心が高まっています。

そして、教育用のプログラミング言語として人気があるのが、スクラッチ(Scratch)で、色々なゲームや作品を作ることができます。

でも、ゲーム作りだけでなく、プログラミングの基本や考え方も学んでみたいというお子さんや、学ばせたいという親御さんもいらっしゃるのではないでしょうか?

そこで、学びプラスでは「スクラッチで学ぶプログラミング」シリーズを公開中です!

今回は、プログラミングでよく使われるif文(もし~なら/条件分岐)について解説していきます。

【スクラッチ】if文とは?

プログラミングをする際に欠かせないのが、if文(いふぶん)です。

if文とは、「もし~なら○○をする」といったことができるプログラミングの文法です。

例えば、「もし50歩歩いたら、こんにちはと言う」というプログラムや、「もし点数が10点以上なら、ゲームクリアにする」というプログラムを作ることができます。

図で描くとこんな感じです。

図では、”点数が10点以上”が条件になっています。

そして、「はい」ならゲームクリアになり、「いいえ」ならゲームオーバーになります。

このように、条件によってそのあとの結果や動作が変わってくるので、if文は、「条件分岐」とも言えます。

【if文】条件を満たすときは真、満たさないときは偽(ぎ)という

もう少し if文のプログラミング文法について解説していきたいと思います。

先ほどの例でいくと、点数が10点以上だと条件を満たしゲームクリアになりました。

このように、条件を満たすときを「真(英語ではtrue)」と言います。

逆に、条件を満たさないとき(点数が10点未満)は「偽(英語ではfalse)」と言います。

つまり、if文では、条件の真偽を判定して、そのあとの動作を変えることができます。

ちなみに、「if文」と言われるのは、一般的なプログラミング言語では、

if(条件式){
 やりたい動作
}

のように書かれるため、「if文」と呼ばれています。

【スクラッチ】if文を使って条件分岐させてみよう!

では、実際にスクラッチでif文を使っていきたいと思います。

シンプルなif文の使い方

今回作るプログラムはこんな感じです。

このプログラムは、ネコにタッチしたらこんにちはと言う、プログラムです。

⇒スクラッチサイトで見る場合は、こちらから!

プログラムの中身はこのようになります。

プログラムの中身

「制御」の中から、もし~なら ブロックを選択して使っています。

このプログラムでは、ネコが「マウスポインターに触れたなら」が条件になっています。

ネコがタッチされたら、その条件が満たされる(真になる)ので、こんにちは!と言うが実行されます。

また、プログラムの中で ずっと ブロックを使っていますが、これは条件が満たされるまで、条件の真偽判定をし続けるために使っています。
(ずっとブロックを使わないと、プログラムは一瞬で終了してします)

ずっと ブロックの繰り返し処理の解説は以下のページで!

プログラムの流れを簡単な図で表すとこのようになります。

ずっと ブロックによって条件の判定が行われ続け、ネコにタッチすると条件が真になるので、こんにちは!と言います。

if文を連続して使ってみよう

if文で、色々な使い方をしてみたいと思います。

ネコにタッチするとこんにちは!と言い、スペースキーを押すと10歩進むプログラムになります。

⇒スクラッチサイトで見る場合は、こちらから!

プログラムの中身はこのようになります。

もし~なら ブロックを2つ連続して使っています。

このように、if文を連続して使うことで、一つ目のif文の条件をチェックして、そのあと二つ目の条件をチェックしていくことができます。

もちろん、if文はいくつでも連続して使うことができます。

if文の中で、if文を使ってみよう

次は、if文の中で、if文を使ってみたいと思います。

スペースキーを押すと10歩進み、画面端まで行くと、中央(x座標=0, y座標=0)に戻ります。

⇒スクラッチサイトで見る場合は、こちらから!

プログラムの中身はこのようになります。

もし~なら ブロックの中で、もし~なら ブロックを使っていることが分かるかと思います。

一つ目のif文の中で、スペースキーが押されたかチェックして、押されたら10歩進んでいきます。

そして、二つ目のif文で、ネコが画面端に着いたかチェックして、端に着いていたら画面中央 (x座標=0, y座標=0) に移動するようにしています。

if文の中で、if文を使って、複数の条件の真偽をチェックしていく処理はよく使われるので、覚えておくとよいでしょう!

【スクラッチ】もし~なら~でなければ ブロックで条件分岐させてみよう!

「制御」の中で、もし~なら~でなければ ブロックがありますが、これもif文です。

なお、プログラミングの世界では、このような文は、if-else文(いふ-えるすぶん)とも言われます。

このブロックでは、もし~ならの部分で条件をチェックして、真であれば一つ目の処理が実行され、偽であれば二つ目の処理が実行されます。

具体的に例を見ていきましょう。

スペースキーを押したら点数がランダムに出るので、70点以上なら合格、70点未満なら不合格と表示されます。

⇒スクラッチサイトで見る場合は、こちらから!

プログラムの中身はこのようになります。

まずは、変数「点数」を作成しておきます。

そして、スペースキーを押したら、1~100までの乱数を作って、点数に入れています。

もし~なら ブロックの中で、点数が70点以上か判定して、真ならば「合格!」と表示し、偽ならば「不合格。。。」と言うようにしています。

もし~なら~でなければ ブロックは、条件を満たしているときはこの動作をさせたい、満たしてないときはあの動作をさせたいというときによく使われます

スクラッチでif文をうまく使っていこう

今回は、if文(条件分岐)の解説をスクラッチを用いて解説しました。

また、いろいろなif文の組み合わせについても紹介してきました。

if文は、条件によって動作を分けていきたいときに用いられるので、ゲーム作りの時にも欠かせないと思います。

一般的なプログラミング言語でも多く用いられるので、ぜひif文の考え方と使い方に慣れておくと良いでしょう!