今日、というかついさっき初めて気がついたのだが、私は今まで大きな勘違いをしていた。
例えば、
int a,b,c;
a = 3;
b = 5;
c = 10;
とa,b,cがあるとしよう。
で、プログラムをしていたらあちこちで見たり書いたりすると思うが、
a += b+c;
これはaにa+b+cの結果の18を代入することになる。
a *=b*c;
これはaにa×b×cの150がaに入る。
さて、ここまでは全然問題ないのだが、この次が問題だ
a *=b/c;
3*5/10だから、1になる……と、私は思っていたんです。
ですが、実際には0になる!えぇ〜!?
で、ようやく今になって気がついた
a ●= ……;
は
a = a●(……);
なんだという事に。
つまり、3*(5/10) = 3* 0 = 0なんだってことに
あわわわ、恥ずかしい〜!
どこを探してもミスなんてないのに何故動かん!とか思っていたら、こんなところでミスっていたとは……