プログラミングにおける変数とは

自分は今の会社に入る2年前までは全くプログラミングの経験がなかった。もちろん変数のことも知らない。今ではなんとなくわかって使えるようになり、プログラミングもちょっとずつできるようになった。ほぼゼロから丁寧に教えてくれた今の職場の人たちには感謝している。今回はそんなプログラミングの基礎である変数について振り返ってみる。


変数とは一時的に値を入れておく箱のようなものである。プログラミング言語によっては型を宣言する必要のないものもあるらしいが、自分が仕事で使っている言語では変数を使うためには型を宣言しなければならない。数値を入れるなら数値型、文字を入れるなら文字型でそこからさらに型が分かれてる。


数値型は整数や実数(小数点のある数)、数値のケタ数によって型が異なる。宣言した数値型の範囲外の数値を変数に入れた場合、入ったように見えても異なる数値が入っていることがあるので注意が必要だ。


例)変数を名前はhensu、数値型はbyteで宣言した場合 
数値型byteは1バイト=8ビットの数値データを記憶できる。コンピュータ内部ではすべてのデータは1と0の組み合わせで表されている。1ビットにつき1か0の2通りでそれが8枠あるので、2の8乗=256通りとなりbyteには0〜255の数値を入れられる。範囲外の数値を入れた場合にはきちんとデータが保持されない。
200→hensu
hensu=200
300→hensu
hensu=?(255)


変数の名前には半角英数字を使うというルールはあるが、それにさえ従っていれば自由に好きな名前をつけることができる。とはいっても自分の好きな芸能人とかアニメのキャラクターの名前をつければいいというわけではない。ソースコードを見たときにどんな処理をしているかわかりやすい名前をつけたほうがいい。そうしておけば他の人が修正や機能追加をしやすくなる。自分が作ったものならどんな変数名でもわかると言う人もいるかもしれないが、自分が数年後にソースコードを見直したときのためにもわかりやすい変数名をつけておくことをおすすめする。


わかりやすい変数名とは一目でどんな処理に使う変数かわかるものである。あとは長すぎるとソースコードが見にくかったりごちゃごちゃしたりするので、より多くの情報を盛り込みながらいかに短い名前をつけられるかが大切だったりする。よく使う言葉は略したりする。

番号 number→no
ボタン button→btn
個数 count→cnt
年月日 YearMonthDay→ymd
削除 delete→del
開始 start→st
終了 end→ed


変数名にローマ字や日本語読みを使ってはいけないとかいう人もいるが、今の職場には日本人しかいないのでみんなガンガン使っている。自分は変数名に入れたい日本語をGoogle翻訳してみて、あまり馴染みのない英語が出てきたときは日本語読みにしている。英語と日本語をミックスして名づけることも。

例)契約開始日→KeiYmdSt


変数の頭に宣言した型の頭文字をつけることもある。数値型byteで宣言した変数はbHensuというように。社内のさまざまなソースコードで共通して使われているような変数なら頭文字は省略するが、自分で名前をつけるときは型の頭一文字をつけるようにしている。一度入れた値を変更できない変数=定数を宣言するときには変数名にconstの頭文字cをつける。


ループに使う変数には小文字一文字で特に意味を持たない名前をつける。なんとなくnとかiとかよく使う。あとはなるべく社内の他の人と同じような名前のつけ方をするくらい。社内の共通ルールがあればなるべくそれに従ったほうがいいと思う。


変数は値を保持するために使うものだとされているが、必ずしも保持するためだけに使うわけではない。作りをわかりやすくするために使ったり、後からソースコードを変更しやすくしたりするために使うこともある。


例)合計金額Xを求めるとき
X=(100+200+300) ×0.1ではなく
Rate=0.1
a=100
b=200
c=300
X=(a+b+c) ×Rate とする


消費税率など変化する値は変数にセットしておくことをおすすめする。プログラム起動時に一回だけセットするようにしておけば修正するのは一箇所でよいからだ。将来消費税の税率が変わったときに計算に使っているところを探して全て直す必要がなくなる。


変数と似たようなものに引数と関数がある。引数とは値を渡したり受け取ったりするための箱のようなもの。手続き(ひとまとまりのコードの集合)を使いまわすために使う。例えば日付を引数で渡したらその日付の1年後を返す手続きなんかを作っておくと便利。


関数とは戻り値が帰ってくる手続きのこと。戻り値の型も変数のように自由に定義することができる。TrueかFalseが返ってくるようにしておいて、処理がうまくいったかどうかを判断するために使ったりする。


以上


変数はプログラミングとは切っても切り離せない関係である。変数をさらにうまく使いこなしてプログラミングを極めていきたいと思う。