プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

プログラムの思わぬ落とし穴

今日、というかついさっき初めて気がついたのだが、私は今まで大きな勘違いをしていた。

例えば、
 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なんだってことに

あわわわ、恥ずかしい〜!


どこを探してもミスなんてないのに何故動かん!とか思っていたら、こんなところでミスっていたとは……