【VB.Net】定数っていったいなに? | i

【VB.Net】定数っていったいなに?

前回は、水道料金を例に変数の初期化について紹介しました。
引き続き水道料金を例に「定数」を紹介したいと思います。

前回、以下のように例をあげました。

Aプランの基本料の変数名をkihon_A、基本料を2500円とて変数宣言と初期化は以下になります。
Dim kihon_A As Integer
kihon_A = 2500
この基本料の変数は「一定だし、わざわざ変数に格納する必要があるの?」、「変数ってことは、値を変更することができるってこと?」と思ってしまうかもしれません。
 
Q1.「器(今回の場合、変数)に格納する必要があるか?」
答えはYES◎です。
例えば、以下のように基本料を直打ちとして計算したとしましょう。
 
佐藤さん家の1か月分の使用料金が1500円、請求額を変数sato_suidoとする
Dim sato_suido As Integer
sato_suido = 2500 + 1500
数値を直書きすると一見、見やすくなったように感じますが、これが続くと「2500は一体何の数字??」と感じてしまいます。
それを防ぐため、「器に入れる」ということをします。

sato_suido = kihon_A + 1500
このように、「佐藤さんの家の水道代は基本料(2500円)と使用料である1500円をなんだな」とみることができます。
 
Q2.「変数ってことは後々、値を変更することができるってこと?」
答えはYES◎です。
もちろん「変数」という名前であるので、変わることは往々にしてあります。
ただ、変わってもよい値と変えられない値、があると思います。
今回は、基本料が値上げしないものとして考えましょう。
各家庭の請求額はその月によって変動します =>変わってもよい値
基本料は一定で変動しません =>変えられない値

では、基本料が2500円で変わらない値だとして、プログラミング中にその値を誤って書き換えてしまったらどうなるでしょうか?
Dim kihon_A As Integer
kihon_A = 2500



kihon_A = 25000

Dim sato_suido As Integer
sato_suido = kihon_A + 1500
これでは、佐藤家の水道料金が大変なことになってしまいますね。(基本料が2万5千円はとてつもない詐欺です;;)
これはなんとしても避けたい事象ですよね。。
 
以上から、わかりやすくするために器にいれたい、けど変数のように値が書き換わってしまうことが懸案事項
そんなときに登場するのが「定数」という器です。

数学でも、円周率「π」やネイピア数「e」などが定数としてあります。
円周率もネイピア数も「3.141592…」、「2.71828…」といったように一定の値ですよね。
それを保持する器(記号)として「π」や「e」と表記されます。

それと同じように、プログラム内にも定数を定義することができます。
定数宣言は以下です。
Const 定数名 As データ型 = 値


定数宣言の注意点:
・宣言した並びで値を設定すること
・原則定数名は大文字で定義すること(変数と区別できるように)
です。
基本料で例えると
定数宣言:
Const KIHON_A As Integer = 2500

となります。
定数の使用方法も変数と何ら変わりはありません。
Dim sato_suido As Integer
sato_suido = KIHON_A + 1500

また、定数であるため
KIHON_A = 25000
のようにプログラム内で書き換えるとエラーが出力されます。
プログラミングで定数と変数をうまく使い分けることによって、ミスなどがなくなるのでぜひ活用してみてくださいね。