変数
変数とは
変数とは、何か値(数値や文字列など)を入れておくための「箱」に名前を付けたものです。
「箱」を用意しておくことによって、たとえ中身が決まっていなくとも、中身をどう使うかをプログラムとして書くことができます。
それでは、具体的に変数の使い方を見ていきましょう。
var age;
age = 23;
age = 34;
まず、varという命令で「変数を使いますよ」と宣言しておきます。varは変数を意味するVariableの先頭3文字です。
次にスペースを一つ開けて、その変数(箱)に名前を付けてあげます。
2行目では、変数ageに具体的な値23を入れています。変数に値を入れることを代入といいます。
変数はその名前の通り、変化する数です。すなわち、中身を変えることができます。
3行目を実行した時点で変数の値は23から34に変化しています。
ageの中身は数値なので、四則演算での計算が使えます。
age + 1
age - 1
age * 3
age / 4
実際に動かしてみてください
なぜ変数を使うのか
そもそもなぜ変数を使うのでしょうか?
このことを説明するために、以下の例を見てください。
"私の年齢は21歳です。"
"来年は22歳になります。"
"10年後には31歳になってしまいます。"
"100年後は生きていれば121歳ですね。"
おっと、ついさっき22歳になったので上記のプログラムは修正しなければなりません。
さらに1年後、2年後もプログラムを書き換えなければいけないとなると大変ですよね。
せめて変更箇所を少なくすることはできないでしょうか?
さて、ここで変数の出番です。
var age = 22;
"私の年齢は" + age + "歳です。"
"来年は" + (age + 1) + "歳になります。"
"10年後には" + (age + 10) + "歳になってしまいます。"
"100年後は生きていれば" + (age + 100) + "歳ですね。"
変数は「var 変数名」で変数名を宣言しておき、「変数名 = 値」で値をセットし、「変数名」で値を取り出します。
変数ageに年齢を入れておくことによって、変数ageの中身さえ変えれば、全ての文字列が変更されるようになりました。
変数を使うと、変更箇所を少なくするほか、ユーザー入力のように具体的な値はまだ決まっていないけど、
どういう風に使うかはプログラムとして書けるというメリットもあります。
以下は、入力された名前を使ってウェルカムメッセージを返すプログラムの一部です。
"ようこそ" + name + "さん"
nameという変数には、画面からユーザーが入力した文字列が入る予定です。
変数に最初に入れる値が決まっていれば、変数の宣言と同時に値を代入することもできます。
var age = 23
値の更新
さて、変数への値の代入と値の取り出し方はできるようになりました。
プログラムによっては現在の変数の中身を使って変数の中身を更新したいときがあります。
変数の値の更新はどうするのでしょうか
次の例では変数ageの値を10増やしています。
var age = 12
age = age + 10
奇妙に見えるかもしれませんが、JavaScript(ほとんどのプログラミング言語でも)ではこのような場合には代入"="が一番最後に実行されるので、
先にage + 10が計算され、計算結果がageに代入されます。
他の演算も同じようにできます。
var age = 13
age = age + 10
age = age - 5
age = age * 2
age = age / 3
インクリメント・デクリメント
値の更新もできるようになりましたね。
変数についてはこれである程度自由自在に扱えます。
次の章に進む前に、インクリメントとデクリメントというものを紹介したいと思います。
インクリメント・デクリメントは変数の値を1増やす・1減らす書き方です。それぞれ、変数のすぐ後ろに++または--と書きます。
var age = 12
age++ //インクリメントした。中身は13になっている
age--
age-- //デクリメントした。2回デクリメントしているので中身は11になっている
インクリメントは主にループ(後で出てきます)で使います。
ループ以外に1増やすだけ、1減らすだけの処理でインクリメント・デクリメントを書くことはあまりありませんが、
こういう書き方もあるんだということだけ覚えておきましょう。
まとめ
- 変数は値を入れておく「箱」のこと
- 「var 変数名 = 初期値」 の形を覚えよう。「= 初期値」はなくても問題ない
- 「変数名 = 変数名 演算子 値」で元の値を使って更新できる
- 「変数名++」はインクリメント。1だけ数が大きくなる
変数に関する学習は以上です。
変数名はある程度自由に付けることができますが、適切な名前を付けると開発効率も上がり、ソースコードも読みやすくなりますので、
変数名は慎重に付けるようにしましょう。
以降も変数という概念はバンバン出てくるので、扱い方に慣れておくといいでしょう。