第2講 変数
第6話 =の意味
=は数学の=では決してありません。
数学の=は等しいという意味ですが、
a=2;
ならば箱aに2を入れるという操作です。
aといういう箱が2に等しいのではなく、
aという箱に2を入れるという意味にすぎません。
ですから、
a=2;
は
a←2;
とイメージした方が正しいわけです。
入れるすなわち代入を=で表しているわけです。
すると、一連の謎のコード
a=0;
a=a+1;
a=a+2;
a=a+3;
の意味も見えてきます。
まず、
a=0;
によって、箱aには0が入っています。
この状態で
a=a+1;
の操作が行われます。
図で参照と書いてありますが、
箱の中身を見ることを参照といいます。
緑の枠が右辺のa+1に対応します。
0+1は1ですから、=すなわち←によって、
箱aに1が入っていきます。
a=0;
によって箱aには0が入っていたわけですが、
新しい数値1が0をはじき飛ばします。
データは箱の中でしか生きられませんので、
はじき飛ばされた0は消滅の運命を辿ります。
よって、箱aの中身は1に変わります。
次の
a=a+2;
はどうなるかと申しますと
a←1+2
から箱aの中身は3となります。
最後
a=a+3;
によって
a←3+3
から箱aの中身は6となります。
以上によって、
a=0;
a=a+1;
a=a+2;
a=a+3;
の計算から1+2+3の計算が実現できていることがわかります。
ですが、コード
#include<stdio.h> //C言語プログラミングをはじめるためのお呪い。
int main() {
int a; //整数を入れる箱aを用意
//以下計算
a=0;
a=a+1;
a=a+2;
a=a+3;
//以上計算
printf("%d\n", a); //箱aの中身を表示
return(0); //mainを閉じるためのお呪い。
}
は褒められたものではありません。
もし1+2+3+・・・+100の計算なら
a=0;
a=a+1;
a=a+2;
a=a+3;
a=a+4;
a=a+5;
a=a+6;
・
・
a=a+100;
と似たようなコードを100行も書き続けなければならないからです。
同じような繰り返しは人間がやるのではなくコンピュータにやらせるべきです。
で、第3講の課題は繰り返し処理for文となるわけですが、
第3講に入る前に簡単に触れた参照について説明して、
printf()使い方をまとめておかなければなりません。
printf()の使い方は変数のテーマからは少しずれますが、
独立の講にするほどの分量はありませんから、
とても重要な話ですので、どこかの章に入れる必要があります。
ので比較的少ない話数で済んだこの第2講に入れることにします。