こちらは、スクラッチの「変数を〇にする」ブロックの使い方を、詳しく徹底解説しています!
「変数を〇にする」ブロック
「変数を〇にする」ブロックは、指定した変数に指定した値を入れます。
変数とは?
変数とは、数字や文字を入れられる箱のことです。
箱の中身から入れたものを取り出し画面に表示させたり、違う文字や数値を入れることができます。
スクラッチでは、この箱の中身に文字や数値を入れるために、「変数を〇にする」ブロックや「変数を〇ずつ変える」ブロックを使います。
「変数を〇にする」ブロックの規定値
「変数を〇にする」ブロックの規定値は、以下の3つです。
- 作成した変数名
- 変数名を変更
- 変数”〇〇”を削除
「変数名を変更」は、現在選択中の変数の名前を変更できます。
「変数”〇〇”を削除」は、現在選択中の変数〇〇を削除できます。
「作成した変数名」は、こちらのように作られた変数がすべて表示されます。
ちなみに、「歩数」という変数には、雲マークがついていますよね。
これは、「クラウド変数」という特別な変数です。
クラウド変数については、「スクラッチのクラウド変数の作り方」で詳しく解説していますので、ご確認ください。
「変数を〇にする」ブロックの使い方
それでは、「変数を〇にする」ブロックの使い方を見ていきましょう。
まずは、変数にどのような文字や数値が入っているのか先に確認しましょう。
「変数の値」ブロックの左側にあるチェックボックスにチェックを付けましょう。
すると、ステージの左上に選択した変数のステージモニターが表示されます。
この時点では、変数「変数」「歩数」「カウンター」すべて「0」の値が入っています。
まずは、「変数を〇にする」ブロックを使って、変数「変数」に「15」を入れてみます。
「変数を〇にする」ブロックをクリックすると、変数「変数」に「15」が代入されました。
これは「0+15=15」ではなく、「0」→「15」に変わったということです。
同じように今度は、変数「カウンター」に「-200」を、変数「歩数」に「10歩」を入れて実行します。
すると、こちらも各変数に指定した値が代入されました。
こちらも「0+(-200)=-200」・「0+10歩=10歩」ではなく、「0」→「-200」・「0」→「10歩」となります。
変数「変数」「カウンター」は数値が、変数「歩数」には文字列が入っています。
数値と文字列
今度は、変数が「数値」と「文字列」でどのように挙動するのか確認していきます。
「〇+〇(足し算)」ブロックと「〇と言う」ブロックを使って、変数「変数」+10を設定すると、「25」と言いました。
これは、変数「変数」に数値の「15」が入っているため、「15+10=25」ということです。
続いて他の変数で試してみますが、変数を変更する場合は、「変数の値」ブロックを右クリックすると、他の変数を選択できます。
今度は、変数「カウンター」+10を設定すると、「-190」と言いました。
これは、変数「カウンター」に数値の「-200」が入っているため、「-200+10=190」ということです。
このように、変数の値が数値の場合は、計算するときも数値として扱われます。
次に文字列の変数「歩数」だけを入れると、「10歩」と言いました。
文字列単体であれば、特に問題なく利用できます。
次に、変数「歩数」+10を設定すると、「10」と言いました。
「10歩10」と予想した人も多いのではないでしょうか?
「〇+〇(足し算)」ブロックに文字列が入ると無視されます。
並び替えをしたり、数値を足したりしても、すべて文字列は無視され、数値の部分のみ計算されます。
最後に変数「歩数」+「です」とすべて文字列だけ入れると「0」が返ってきました。
全て文字列の場合は、「0」を返します。
ここまで変数の挙動を見てきましたが、厳密には、型キャストによって文字列が「0」とみなされるため、「0+0」の結果ということです。
キャストとは、プログラミング言語において、変数などのデータ型を別の型に変換することを指し、スクラッチでは以下のように変換されます。
規則 | 文字列として扱う場合 | 数値として扱う場合 | |
---|---|---|---|
文字列 | 文字列: “abc” |
“abc” | 0 |
文字列: “123” |
“123” | 123 | |
文字列: “0xff” |
“0xff” | 255 | |
文字列: “0b110” |
“0b110” | 6 | |
文字列: “0o777” |
“0o777” | 511 | |
文字列: “3e2” |
“3e2” | 300 | |
文字列: “true” |
“true” | 0 | |
数値 | 数値: 123 |
“123” | 123 |
数値: NaN |
“NaN” | 0 | |
真偽値 | 真偽値: true |
“true” | 1 |
真偽値: false |
“false” | 0 | |
リスト | リスト: [“a”, “b”, “c”] |
“abc” | 0 |
リスト: [“a”, “b”, “c”, “は文字です”] |
“a b c は文字です” | 0 | |
リスト: [1, 2, 3] |
“1 2 3” | 0 | |
リスト: [“1”, “2”, “3”] |
“123” | 123 | |
リスト: [1, 22, 3] |
“1 22 3” | 0 | |
リスト: [3, “.”, 1, 4] |
“3 . 1 4” | 0 | |
リスト: [“3”, “.”, “1”, “4”] |
“3.14” | 3.14 | |
リスト: [] |
“” | 0 |
もしも、文字列を結合させたい場合は、「〇と〇(文字列結合)」ブロックを使いましょう。
こちらは、数値を入れたとしても文字列として扱われ文字を結合させます。
変数名の変更と変数の削除
「変数を〇にする」ブロックには、「変数名を変更」と「変数”〇〇”を削除」の機能もありました。
こちらの2つは、プログラム実行中に使うことはありません。
変数名の変更と変数の削除については、「スクラッチの「変数の値」ブロックの使い方を徹底解説!」で詳しく解説していますので、こちらをご確認ください。
変数ブロック一覧
「変数」ブロックには、以下の17個のブロックが用意されています。
- スタックブロック・・・11つ
- 値ブロック・・・5つ
- 真偽ブロック・・・1つ
ブロックの色は、変数関係が橙色、リスト関係がレンガ色(赤茶色)で統一されています。
変数ブロック | 動作 |
---|---|
変数を作る 変数を作る |
|
変数の値 変数の値を返す |
|
変数を〇にする 指定した変数に指定した値を入れる |
|
変数を〇ずつ変える 指定した変数の値に指定した値を加える(+なら増、-なら減) |
|
変数▢を表示する 指定した変数の値を表示する |
|
変数▢を隠す 指定した変数の値を非表示にする |
|
リストを作る リストを作る |
|
リストの値 リストの値を返す |
|
〇をリストに追加する 指定したリストに指定した値を追加する |
|
リストの〇番目を削除する 指定したリストから指定した番号の値を削除する |
|
リストのすべてを削除する 指定したリストのすべての値を削除する |
|
リストの〇番目に〇を挿入する 指定したリストの指定した番目に指定した値を挿入する(追加) |
|
リストの〇番目を〇で置き換える 指定したリストの指定した番目に指定した値を置き換える(変更) |
|
リストの〇番目 指定したリストの指定した番号の値を返す |
|
リストの中の〇の場所 指定したリストから指定した値の番号を返す |
|
リストの長さ 指定したリストに含まれている要素の数を返す |
|
リストに〇が含まれる 指定したリストから指定した値が存在するか調べて真偽の値(true、false)を返す |
|
リスト▢を表示する 指定したリストを表示する |
|
リスト▢を隠す 指定したリストを隠す |