変数 ~ プログラムが魔法でないとわかればプログラマになれる 8

= は数学のイコールではない

改めて先ほどのプログラムの1行目をみてみましょう。

let price = 100;

さて、どのように読んでいけば良いでしょうか。最後の ; は既に述べたとおり一つの文(命令)の終わりを示す記号で日本語の句点と同じ意味です。つまりこの命令の内容は ; を除いた let price = 100 の部分ということになります。 まずは = という記号に注目してみましょう。

= はイコールと読みます。記号自体は馴染みがあると思います。数学の世界では左辺と右辺が等しいことを意味する記号です。1 + 2 = 3 ですね。「1 + 2」と「3」は等しいという意味です。私たちはプログラムよりも先に数学を学びますから = を見るとどうしてもこの意味でとらえてしまいます。ですが、プログラムで使う = は数学で使うイコールと異なります。プログラムでは「等しい」ことを示すために = は使いません。では = はどのような意味を持つのでしょうか。 = は次のように使います。

名前 = 内容

名前 はそのまま呼び名のことです。 内容 は文字や数字など色々なものが入ります。

私たちは日常生活で名前をよく使います。誰か人を呼ぶときに名前を使いますし、何か物を指すときにも名前を使います。現実世界を例に説明しましょう。

コップ = 飲み物を入れる食器

このプログラムは「 コップ飲み物を入れる食器 と等しい」という意味になりません。一見そのように考えても意味が通りますが、数学の = は一旦忘れる必要があります。プログラムにおける意味は「 飲み物を入れる食器 をこれから コップ と呼ぶ」になります。この命令の後に続くプログラムでは「コップ」という名前が使えるようになります。

なぜこのような名前付が必要なのでしょうか。理由の一つは日常生活における名前の役割と似ています。「コップ」を取って欲しい時に「飲み物を入れる食器を取って」と毎回言わなければならないと大変です。複雑な内容を「名前」で簡単に表現できるのはとても便利なことです。

そしてもう一つ、プログラムにおいてより重要な理由があります。それは「特定する」ということです。「コップ」全般を意味するのではなく「そのコップ」というようにどのコップかを特定した意味になります。特定していることわかりやすくするために例を変えましょう。

コップA = テーブルの上にある飲み物を入れる食器
コップB = 食器棚の中にある飲み物を入れる食器

このように一般なものとしての名前を決めているのではなく、どれのことを指しているのか具体的に特定する意味があります。それでは、元のプログラムに戻ってみましょう。

let price = 100;

let という単語の意味は後ほど説明しますので、今は price = 100 の部分に注目してください。「 100 をこれから price と呼べるようにする」という命令です。この命令により、今後は「price」と言う名前を使って「100」を表すことができます。

なお、この「price」はプログラムで決められている名前ではなく私が勝手に名付けたものです。

let taro = 100;

こうしても全く問題ありません。これから使える名前が「price」ではなく「taro」に変わるだけです。私が「price」という名前がわかりやすいだろうと思って勝手に決めただけです。

さて、専門用語にも少し触れておきましょう。 price の部分を「変数」と言います。数学でよく使う x や y のような存在ですが、「名前」が指す「内容」が 変わっても良い ことから「変数」と呼ばれます。プログラムで扱う内容は「数」だけではないため「変数」というと少し妙ですが、「変文字」「変ファイル」などと言ってもわかりやすくなりませんので専門用語として受け入れましょう。

「名前」が指す「内容」が 変わっても良いと言いましたが、それはつまり、次のようなことができるということです。

let price = 100;
price = 150;

1行目では 100price としたわけですが、2行目で 150price としています。2行目以降で price が指すのは 150 になるのです。このように同じ名前を使ってどの内容を指しているか途中で変えても良いことになっています。2行目だけ let が抜けているのは書き損じではなくこのように書かなければならない決まりがあるのですが、 これについては let のときに合わせて説明します。

>>続きを読む
>>全記事を見る

<最新話にご興味があればフォローお願いします>

この記事が気に入ったらサポートをしてみませんか?