Study 3 変数

プログラミング初心者の方にとって最初の関門が変数です。
今回は変数に付いて解説したいと思います。

変数は文字通り変わる数です。
辞書で調べると以下のように記述されています。
「数学で、数量を一つの文字で表す際、いろいろに変わり得る数量を表す文字(小学館国語大辞典より)」

つまり変数は数字では無く文字であると言う事が分かります。
ちなみに英語では変数の事をvariableと言います。

以下の例を見てください。

x = 2y - 1

中学の二次方程式で見た事があるような式です。
この場合、xの答えは分かりません。
それはyの答えが分からないからです。
yが2であればxが3である事がわかります。
yが3ならxは5、xが7ならyは4です。
「私はx歳」と言われても何歳か分かりません。
「私の年齢は私の子供の年齢の倍の数から1を引いた値です」
とまあ、こんな事を言う人は実際にはいませんが、
子供の年齢が分かれば親の年齢も分かります。
xもyも決まった数値ではありません。
その時々によって値が変わります。
これを変数と言います。
例で使用したxやyが変数です。
変数はプログラミングでは箱のような概念です。
箱の中に色々なデータを入れたり出したりします。

先ほどの例をPerlで記述すると以下のようになります。

$x = 2 * $y - 1;

実際にPerlでは上記のような記述が至るところで使用されています。
xとyの前に「$」が付いているのが分かります。
他のプログラミングに馴れている方は奇異に思うでしょうが、
Perlでは変数の前は必ず「$」や「%」や「@」といったマークを付けなくてはなりません。

Perlでは三種類の変数があります。
頭に「$」が付いている変数をスカラ変数と言います。
頭に「@」が付いている変数を配列変数と言います。
頭に「%」が付いている変数をハッシュ変数(連想配列)と言います。
配列変数とハッシュ変数に付いては別の機会にお話したいと思います。

スカラ変数は一個しかデータを格納できない変数です。
つまり一個しか物を入れられない箱のようなものです。

$x = 10;

このように記述されていれば$xは10です。それ以外の何物でもありません。
だからと言って一生10のままでもありません。

$x = 10;
$x = 20;
$x = 30;

$xの値は幾つでしょうか?答えは30です。
一旦、$xの中に10が入りますが、その後20が入り最終的に30が入ります。
一つの箱にみかんを入れたらそのみかんを捨てないとりんごを入れられず、またりんごを捨てないとバナナを入れる事が出来ない箱。これがスカラ変数です。

先ほどから$xという変数を使用してきましたが、別に変数は$xでなくてはならないというわけではありません。変数は好きに名前を付ける事が可能です。$boxでも$dataでも良いわけです。
しかしながら生まれて来た赤ん坊にさすがに「殺し屋」なんて名前は区役所で許可されないでしょう。 これと同じように変数の名前の付け方にも決まりごとがあります。

1. 変数の名前の最初の一文字は必ず半角アルファベットで無くてはなりません。
2. 使用できる文字は半角英数字と半角アンダーバー( _ )に限ります。
3. アルファベットの大文字小文字は区別されます。

以下のような変数はOKです。

$d
$data
$DaTa
$data1
$d_1

以下のような変数は×です。

$ d
$_d
$999
$データ
$data@

これらの名前の決まりごとは他の配列変数やハッシュ変数にも当てはまります。
まあ、後々の事を考えて覚えやすい名前を付けるのが良いと思います。

実際に作成した変数にデータを入れる場合は、変数とデータの間に「=」を使用します。

$a = 1.05;
$b = 'こんにちは';
$c = $a;
$d = $e = $a;
$f = $a - 0.05;

$aには数値が入りました。
$bには文字列が入りました。
$cには先ほどの$aの中身「1.05」が入ります。
$dと$eも$aの中身が入ります。
$fは$aの中身「1.05」から0.05を引いた値「1」が入ります。

ちなみに各文の最後の「;」はここで一つの命令文を終えますという決まりごとです。
日本語で言うと「なになにです。」のまるです。

study2戻るstudy4


Copyright 2000-2003 Missing Link All Rights Reserved.