提供: Japanese Scratch-Wiki

変数 (variable) は、プログラミング言語における「変更できる値」である。変数はリストと異なり、1つのものに対して1つの値しか入れられない[注 1]。
変数には、数値や文字列が記録できる。Scratchでは、(変数)
ブロックをクリックすると、その変数が保持している値が表示される。他の多くのプログラミング言語(JavaScriptなど)と違い、Scratchでは、変数を使用するプログラムを実行する前に、その変数を作成する必要がある[注 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は作成や値の保存ができないなど、幾つかの制限がある。クラウド変数には、変数名の最初に「☁」が付く。
ステージモニター
- 詳細は「ステージモニター」を参照
変数には、ステージモニターがある。変数のステージモニターには、「普通の表示」、「大きな表示」、「スライダー」の3つの表示様式がある。表示様式は、ステージモニターを右クリックしてコンテキストメニューを表示させるか、ステージモニターをダブルクリックすることで変更できる。
ステージモニターを表示するには、変数 [変数 v] を表示する
を実行するか、ブロックパレットで(変数)
ブロック左側のチェックボックスにチェックを入れる。隠すには、変数 [変数 v] を隠す
を実行するか、チェックボックスを外す、もしくはステージモニターのコンテキストメニューで「隠す」を選択する。
バグ
![]() |
この項目には、最新バージョンのScratchには存在しない機能について書かれています。現在は使うことができないので、注意してください。 |
引数の定義
変数名に特定の文字列を使用するとバグが起きていた。たとえば、「%s」や「%m.var」などである。これらを入力すると、文字入力の項目がある変数や、選択できる変数ができた。これは、Scratchが%で始まるものをブロックの引数の種類として定義するためである。また、ブロックの絵文字を表示することもできた。これはv423で修正された。
delete
変数名を「delete」にすると、その変数はプルダウンメニューでは「削除」になる。これはScratch 3.0で修正された。
リスト
- 詳細は「リスト」を参照
リストは変数と同じく、値を保持する。ただし、変数が一つの値しか保持できないのに対して、リストは、保持する量が多い場合や保持する量が分からない場合などに使われる。
関連項目
外部リンク
- 変数 — Wikipediaの「変数」
出典