変数

箱に入っている野菜の個数の合計を求める計算を考えてみましょう。例えば、キャベツが5個入っている箱が10個、ニンジンが20本入っている箱が5個あったとします。計算の順番として、最初にキャベツの個数を計算します。

  • 5個 x 10箱 = 50 → キャベツの個数: 50個

キャベツの個数は一旦ここで覚えておいて、次にニンジンの個数を計算しましょう。

  • 20本 x 5箱 = 100 → ニンジンの個数: 100本

これで、それぞれの合計数が計算できました。では、先ほど覚えておいたキャベツの個数とニンジンの個数を使って、野菜の個数を計算しましょう。

  • 50個 + 100本 = 150 → 野菜の個数: 150個

答えは150個となりました。

ここで注目すべきことは、途中の計算結果を記録しておいたこと、です。上記のような計算をするときは紙に書いていきますので、途中の計算結果は紙に記録されていきます。そして、後からその計算結果を使いたくなったら、紙に書いてある計算結果を見ることで、「あ、50個だったな」と思い出すことができます。

コンピューターが計算を行う際にも、一気に計算をしてしまうのではなく、上記のように複数の計算に分けて答えを求めていくときがあります。例えば、キャベツやニンジンの個数を画面に表示しながら計算を進めていきたい、というときには、5 x 10 + 20 x 5 = 150 と一気に計算せずに、計算式を分けることが必要です。そして、最初に計算したキャベツの個数をどこかに記憶しておき、ニンジンの個数もどこかに記憶しておきます。最後に、記憶しておいた2つの個数を使って、最終的な野菜の合計個数を計算します。

コンピューターに何らかの情報を一時的に記憶してもらうための仕組みとして、「変数」があります。変数は、よく「何かを入れておくための箱」と説明されます。

野菜の個数の例では、まずコンピューターの中に箱を一つ作って、キャベツの個数が書かれた紙をその箱に入れておきます。そして、後から「何が入っている箱なのか」がわかるように、「キャベツの個数」と名前をつけておきます。次に、コンピューターの中にもう一つ「ニンジンの個数」という名前の箱を作り、その中にニンジンの個数が書かれた紙を入れておきます。これで、2つの個数がコンピューターに記憶されました。最後に、キャベツの個数の箱とニンジンの個数の箱からそれぞれ紙を取り出すことで、野菜の個数の合計を求めることができます。

Jasmine Tea では、プログラムから変数を作って、情報を入れておくことができます。Jasmine Tea での変数は、以下の2種類があります。

  • 数値を入れておくことができる「数値変数」
  • 文字列を入れておくことができる「文字列変数」

数値変数には数値のみ記憶させることができ、文字列は記憶させることができません。反対に、文字列変数には文字列のみを記憶させることができ、数値は記憶させることができません。

変数は、どんな数値や文字列が入っているかがわかるように、プログラムの中で名前をつけます。Jasmine Tea の変数の名前は、以下の規則があります。

  • 名前の最初の文字は、アルファベット(a~z または A~Z)または「_」(アンダースコア記号)のいずれかでなければなりません。
  • 名前の2文字目以降は、アルファベット(a~z または A~Z)、数字(0~9)または「_」のいずれかでなければなりません。
  • 名前の最後に「$」(ドル記号)をつけると、文字列変数となります。一方、名前の最後に「$」をつけなかったときは、数値変数となります。
  • 名前の長さに制限はありません。
  • 予約語をそのまま変数の名前に使うことはできません。

変数の名前の例は、以下となります。

  • 数値変数 - age, _temp, pin_15
  • 文字列変数 - name$, _name$, sub_title$

1つの変数には、数値や文字列を1つだけ記憶させることができます。例えば、数値変数「age」に 47 という数値を記憶させたあとに、48 という数値を age 変数に記憶させようとしたときは、前の数値 47 は記憶から削除されて、その代わりに 48 が age 変数に記憶されます。文字列変数についても同様です。

数値や文字列など、一度も値を代入していない変数を利用しようとすると、エラーとなります。