提供:Japanese Scratch-Wiki
変数は、Scratch上での「変更できる値」である。変数は、リストと異なり、1つのものに対して1つの値しか入れられない。[注 1]
変数には、数値や文字列が記録できる。スクリプトエリアにある変数のブロックをクリックすると、変数の値が表示される。他の多くのプログラミング言語(たとえば、JavaScript)などと違い、変数は、実行前に作成しないといけない。[注 2]
変数は、変数カテゴリの「変数を作る」ボタンで作成できる。変数を右クリックすると、名前の変更・削除ができる。Scratch 3.0以降、変数を削除すると、その変数が使われたブロックが削除されるようになった。
変数ブロック
変数を扱うブロックは、次の5種類ある。
制限
変数の個数と格納容量に制限はない (クラウド変数を除く)。Scratch 2.0では、変数の格納容量が10240文字に制限されていたが、Scratch 3.0で制限は撤廃された。
タイプ
Scratch 1.4では、グローバル変数とローカル変数の二つの種類がある。Scratch 2.0では、クラウド変数が追加された。これは、全世界で値を共有できるものである。
グローバル変数
なにも設定せずに変数を作るとこれになる。グローバル変数は、ステージとすべてのスプライトから読み書きでき、初期値はファイルに保存される。
ローカル変数
ローカル変数(プライベート変数、スプライト変数などともいわれる)は、このスプライトのみ値を変更できる変数である。作るには、変数作成ダイアログで、「このスプライトのみ」を選択する必要がある。他のスプライトやステージから値を読み取るには、([スプライト1 v] の [変数 v]::sensing)
を使用する。[注 3]ステージにローカル変数はない。
ローカル変数は、スプライトを複製する場合に便利である。どんなに多く複製しても、ローカル変数なら変数の干渉は起きない。
存在しない変数をクリックしたり、存在しない変数に関するブロックを実行すると、自動でローカル変数が作成される。ただし、ステージで行った場合、グローバル変数が作成される。
ローカル変数をグローバル変数にするには、ローカル変数が使われたスクリプトをステージにドラッグするといい。ドラッグすると、使われたローカル変数は名前が「Stage:」で始まるグローバル変数になる。
クラウド変数
- 詳細は「クラウドデータ」を参照
クラウド変数は、全世界で値を共有できる特別な変数である。現時点では、数値のみ保存できる。通常、10個までしか作成できない。また、New Scratcherは、作成や値の保存ができない。クラウド変数には、変数名の最初に「☁」が付く。
使い方
変数は、値の記憶に最も適している。変数の値は、他の値ブロックと同じように読み出せる。
変数には、ステージモニターがある。表示するには、
変数 [変数 v] を表示する
を使用するか、他のステージモニターと同じように、データカテゴリのチェックボックスを入れる。変数には、通常の表示、大きな表示、スライダーの3つの表示方法がある。変更するには、ステージモニターを右クリックするか、ダブルクリックをする。ステージモニターを隠すには、チェックボックスを外す、
変数 [変数 v] を隠す
を実行する、右クリックして「隠す」を選ぶといった方法がある。
不具合
![]() |
この項目には、最新バージョンのScratchには存在しない機能について書かれています。現在は使うことができないので、注意してください。 |
引数の定義
変数名に特定の値を利用すると、バグが起きることがわかっていた。たとえば、%から始まる「%s」や「%m.var」などである。これらを入力すると、文字入力の項目がある変数や、選択できる変数ができた。これは、Scratchが%で始まるものをブロックの引数の種類として定義するからである。また、ブロックの絵文字を表示することもできた。これはv423で修正された。
delete
変数名を「delete」にすると、その変数はプルダウンメニューでは「削除」になる。これはScratch 3.0で解決された。
リスト
- 詳細は「リスト」を参照
リストは、変数と同じで、値の記憶に使える。リストは、保存する量が多い場合、保存する量が分からない場合に使われる。
関連項目
外部リンク
- 変数—Wikipediaの「変数」
出典