こちらは、スクラッチの「演算」ブロックの中にある「〇<〇(小なり)」ブロックの使い方を、詳しく徹底解説しています!
「〇<〇(小なり)」ブロック
「〇<〇(小なり)」ブロックは、左の値が右の値より小さいときに「真(true)」を、そうでないときに「偽(false)」を返します。
「真(true)」か「偽(false)」で返すブロックを「真偽ブロック」といいます。
「真偽ブロック」は、六角形の形をしており、真(True)または、偽(False)のいずれかの「条件・状態」を持つブロックです。(Scratchのブロックの種類と役割について)
「〇<〇(小なり)」ブロックの中の状態を確認したい場合は、「〇<〇(小なり)」ブロックをクリックしましょう。
クリックすると、「〇<〇(小なり)」ブロックの中の状態を確認できます。
「〇<〇(小なり)」ブロックの使い方
それでは、「〇<〇(小なり)」ブロックの使い方を見ていきましょう。
こちらは、算数の点数を聞いて、点数に応じて処理を変えるプログラムです。
「緑の旗が押されたとき」ブロックを使って、緑の旗がクリックされたときに、プログラムが開始します。
最初に「〇と聞いて待つ」ブロックで、算数の点数を聞いています。
入力した値は、「答え」ブロックに格納されます。
答えを入力したら、次はチェック処理です。
「もし◇なら」ブロックを使って、条件を満たしたコメントを呼び出しています。
こちらでは、点数が60点以上なら「すごい!」、60点未満なら「もう少しがんばりましょう!」と言うプログラムにしていします。
点数60点以上は「〇>〇(大なり)」ブロックを使って、「59より大きい数字」で判断しており、点数60点未満は「〇<〇(小なり)」ブロックを使って、「60より小さい数字」で判断しています。
実際に、緑の旗をクリックしてみます。
「算数のテストは何点でしたか?」と聞かれているので、「30」を入力してみます。
すると、「もう少しがんばりましょう!」と出ました。
答えの「30」は、「〇>〇(大なり)」ブロックでは「false」を返し、「〇<〇(小なり)」ブロックでは「true」を返しているため、「〇<〇(小なり)」ブロックのプログラムが実行されたというわけです。
もう一度実行してみて、今度は、「80」を入力してみます。
すると、「すごい!」と出ました。
今度は、「〇>〇(大なり)」ブロックがtrueとなり、そちらのプログラムが実行されました。
「〇>〇(大なり)」ブロックと「〇<〇(小なり)」ブロックは、比較する値を入れ替えても同じプログラムを作ることができます。
例えば、こちらは、左辺にあった変数「答え」を右辺に持ってきたパターンです。
左辺と右辺を逆にすると結果も逆になるため、「もし〇なら」ブロックの中身も入れ替えています。
これでも先ほどと同じ結果のプログラムとなります。
少数での比較
こちらのプログラムは、実は欠陥があります。
というのも、テストの結果を整数で入力することが前提で作ったものだからです。
例えば、点数を「59.999999」と入力してみます。
「〇>〇(大なり)」ブロックでは、「59より大きい数字」で判断しており、「〇<〇(小なり)」ブロックでは、「60より小さい数字」で判断していました。
つまり、「59.999999」というのは、どちらも該当するのです。
まず、「〇<〇(小なり)」ブロックでtrueを返すので、「すごい」と言います。
そして、「〇>〇(大なり)」ブロックでもtrueを返すので、「もう少しがんばりましょう!」と言います。
このように「〇と聞いて待つ」ブロックを使った条件分岐は、意図しない「答え」も想定してプログラミングする必要があります。
文字も比較対象
「〇<〇(小なり)」ブロックは、数値以外に文字も比較対象です。
例えば、「あ」「わ」を比較した場合、「わ」より「あ」が先にあるので「true」を返します。
つまり「あいうえお」順で位置を比較しているというわけです。
アルファベットもアルファベット順で比較しており、大文字小文字は影響しません。
ただ、こちらの仕様については、詳しく判別の方法を明示していないため、意図した結果にならない場合もあります。
演算ブロック一覧
「演算」ブロックには、以下の11個のブロックが用意されています。
- 真偽ブロック・・・7つ
- 値ブロック・・・11つ
ブロックの色は、黄緑色で統一されています。
演算ブロック | 動作 |
---|---|
〇+〇(足し算) 指定した2つの数値を足し算した結果を返す |
|
〇-〇(引き算) 指定した2つの数値を引き算した結果を返す |
|
〇*〇(掛け算) 指定した2つの数値をかけ算した結果を返す |
|
〇/〇(割り算) 指定した2つの数値を割り算した結果を返す |
|
〇から〇までの乱数 指定した2つ数値の範囲でランダムな数値を返す |
|
〇<〇(小なり) 左の値が右の値より小さいときにtrueを、そうでないときにfalseを返す |
|
〇=〇(イコール) 左の値と右の値が同じときにtrueを、そうでないときにfalseを返す |
|
〇>〇(大なり) 左の値が右の値より大きいにtrueを、そうでないときにfalseを返す |
|
◇かつ◇ 指定した2つの条件で両方とも満たすときにtrueを、そうでないときにfalseを返す |
|
◇または◇ 指定した2つの条件でどちらか一方を満たすときにtrueを、そうでないときにfalseを返す |
|
◇ではない 指定した条件がtrueであればfalseを、そうでないときにtrueを返す |
|
〇と〇(文字列結合) 2つの値を連結して、くっつけた値を返す |
|
〇の〇番目の文字 指定した文字列から指定した番号の文字を返す |
|
〇の長さ(文字列長さ) 指定した文字列の文字数を返す |
|
〇に〇が含まれる 指定した文字列に指定した文字列が含まれるときにtrueを、含まれていないときにfalseを返す |
|
〇を〇で割った余り 1つめの値を2つめの値で割ったときの余りを返す |
|
〇を四捨五入 指定した数値を四捨五入した値を返す |
|
〇の▢(関数) 指定した数値を指定した数学関数で演算した値を返す |