こんにちは。平尾です。
最近、お昼はぽかぽか暖かく、散歩にはうってつけです
また靱(うつぼ)公園はちょうどこの季節、いろんな種類のバラが咲いており、
オフィス街の人々の癒しの空間になっています
自然に触れるのは気分転換にもとても良いですよ
つい先日、「この答えわかる?」と、こういう計算式を見せられました。
6÷2(1+2)=
ネットで話題になったものなんですが、皆さんはどんな解答をしますか?
答えは
「9」
(↑答えがすぐ分からないよう、白文字で書いています)
とのことなんですが、見事に引っかかってしまいました
プログラムにも同じような計算の優先順位は大事で、
int value = *p++;
なども見慣れていないと、
何が起こってるのかが分かりにくいと思います。
また、かなり極端な例ですが、
int c = a++-++b;
こんな書き方もできてしまいます
そういえば学生時代にフラグの判定をしようとして、
if( !flag & 0x01 ) {
と書いて、何がどう間違っているのか気付くのに
かなりの時間を要してしまったのを思い出しました…
例え自分の中では分かっていても、
パッと見の分かりにくさ、不具合の発生を抑えるため、
できるだけ括弧を付け、優先を見やすくした方が良いと思います!
他の人が見る可能性があるのであれば尚更必要だと思います!
そうすれば今回の問題↓も
(6÷2)(1+2)=
間違う人がグッと減ったんじゃないかと思います
決して負け惜しみというわけでは…
みなさんも変な記述ミスで失敗しないよう、
計算の優先順位にはお気を付け下さい