プログラムを始めた当初はどのジャンルも敷居が高く感じられたし、人に聞いても理解できるような回答をもらえたことはとても少なかった。
そんな経験から思い付きだけど、プログラムを全く知らない人向けに少し咀嚼してみようと思う。言語は自分にとっても最初に学んだJavaで。テーマも思い付きだけど、今回は変数を説明してみる。
子供にイメージさせるなら「箱」という説明で良いと思うけれど、「箱」の説明でいくとオブジェクトとか参照とか(知らない人は無視していい言葉)が出てきたときに理解を妨げるので、「箱」とは言わないようにする。
それよりも直球で中学生で勉強する方程式からイメージするほうが良いような気がする。連立方程式を解くときに代入法というやり方があったのは記憶にあるだろうか。例えばこんな感じ。
x + y = 2 x - y = 0
これを解くのに代入法を使うと、まず上の式が
y = 2 - x
と置き換えることが出来て「y」が「2 – x」であることが知れる。ここで判明した「y」の内容を式ごと下の式に突っ込む。
x - (2 - x) = 0
これはもう少し分かりやすく置き換えると
x + x = 2
となってxが1だと知れる。
ここで言う代入という行為がプログラムでは頻繁過ぎるくらいに行われる。例えばJavaで変数に値を代入するときは以下のようになる。
x = 3;
イコールが代入というのが慣れないけれど、あとはセミコロンが付いているくらい。セミコロンはプログラムの区切りで日本語の「。」と同じ。
x = 3; y = x + 10;
これでyの中身を見てみると13となっている。xに3が入って3と10とを足して、と順番に考えると解り易い。イコールで右から左に代入されることさえ理解できればそれ程難しくはないと思う。本当にプログラムを書くときは、最初に使う変数の名前をコンピュータに教える「宣言」が必要だったりするけれど、それを同時に説明しようとするからややこしくなるので、宣言はスルー。
ただ、上の式のような例を見ていると、いかにも数字の世界という感じがして嫌だ。いきなり「私には向いていないかも」なんて思ってしまう。
大丈夫、数字だけなわけがない。結構文字とか入れることが多い。
x = "こんにちは";
とか出来る。ダブルクウォートで囲んでいるのは文字だよというコンピュータへのしるし。
あと、変数というのは中身を変えることが出来る。
x = "わいはサルや"; x = "ぼくドラえもん";
これは、最終的にxは「ぼくドラえもん」になってしまう。どんどん上書きされる。
さて、ここまで読んでくれたとしても、何故変数が必要なのかは解らないと思う。最初のうちは、毎回「ぼくドラえもん」と書くと大変だからという理由で良いかと。変数があるから便利な点や、ないと困る点は当然あるけれど、最初のうちはスルーしても問題がないと思うので。
どうだろう。プログラムでいう変数に代入するという行為が少しでも理解できただろうか。あまりにも無視していることが多すぎて、結構語弊だらけなのだけどね。う〜ん、思い付きで書き始めたからオチがないな。