情報を入れておく箱『変数』

プログラミングにおいて、『覚えておく必要がある数値や文字列などの情報』で、『実行中に変化する、または、実行するまで値が決まらないもの』というものが出てきます。

、、というと難しく聞こえますが、、

例えば、ゲームの得点です。敵を倒す度に10点ずつ得点が増えていくゲームがあるとすれば、プログラミングの中で「今、得点はいくつか?」という情報を常に保持しておく必要があります。敵を倒した後、得点に10点を追加しようとしても、今現在の得点が何点なのか分からなければ処理できません。
そして得点は、敵を倒す度に、0点から10点、10点から20点と、実行中に変化していきます。

このような情報は、『変数』で扱います。

変数は『記憶の箱』

人間の場合であれば、『スタート時点では0点から始まる』や『敵を倒すと10点追加』というルールが決まっていれば、特に意識しなくても、ゲーム実行中に頭の中で「10点」「20点」と加算したり得点を覚えておくことができますが、コンピューターに処理させる場合は、その得点の情報を格納するための『記憶の箱』を用意する必要があります。

そして、その『記憶の箱』には名前をつけることができます。これは例えるなら、この『記憶の箱』の中には「何に関する情報が入っているのか」分かりやすくするために箱に記すラベルのようなものです。

変数の使い方

先ほどの得点を管理・計算するための変数を、Scratchで作成してみましょう。

①『変数』カテゴリの「新しい変数を作る」ボタンをクリック

② 変数名をつけて(今回の場合は「得点」という名前の変数にします)、「OK」ボタンをクリック

上記の様にして変数を作ると、『変数』カテゴリの中に変数を操作するためのブロックが現れます。

そして、ゲームがスタートしたら、まず得点を「0」にする必要があります。
スタート直後に、変数の内容をセットするブロックを使いましょう。

また、敵を倒す度に10点ずつ得点が増えていきます。
敵を倒した場合の条件処理の中に、変数の内容を変化させるブロックを使いましょう。

箱に入る情報は1つだけ

変数を使う上で注意しなくてはいけないことがあります。
それは、「変数という箱に入る情報は常にひとつだけ」ということです。

すでに何か情報をセットしている変数に対して、新しい情報をセットすると、変数の内容は新しい情報で上書きされ、古い情報は消えてしまいます。

例えば、人の名前を覚えておくための変数『名前』を用意して、

誰かに名前を尋ねて、その答えを変数『名前』にセットします。

こうすることで、いつでもその人の名前を思い出し、「こんにちは、○○さん!」というように会話の中で使ったりすることができます。

ところが、その後、別の誰かの名前を尋ねて、その人の名前を覚えておくために変数『名前』にセットすると、最初の人の名前が上書きされて消えてしまい、もう思い出すことができなくなります。

変数は覚えておかなくてはいけない情報の数だけ用意する必要があります。
なので、クラス40人分の名前を覚える場合は、40個の変数が必要になります。
(クラス全員の名前、などという場合は、似たような情報をまとめて扱う『配列』というものがありますが、それはまた別の機会に)

以上のことに注意して、変数を使ってみましょう!