2011年05月17日

計算の優先順位

こんにちは。平尾です。
最近、お昼はぽかぽか暖かく、散歩にはうってつけです晴れ
また靱(うつぼ)公園はちょうどこの季節、いろんな種類のバラが咲いており、
オフィス街の人々の癒しの空間になっていますかわいい
自然に触れるのは気分転換にもとても良いですよるんるん

***


つい先日、「この答えわかる?」と、こういう計算式を見せられました。メモ
6÷2(1+2)=

ネットで話題になったものなんですが、皆さんはどんな解答をしますか?
答えは



(↑答えがすぐ分からないよう、白文字で書いています)
とのことなんですが、見事に引っかかってしまいましたあせあせ(飛び散る汗)


プログラムにも同じような計算の優先順位は大事で、
    int value = *p++;

なども見慣れていないと、
何が起こってるのかが分かりにくいと思います。
また、かなり極端な例ですが、
    int c = a++-++b;

こんな書き方もできてしまいますがく〜(落胆した顔)

そういえば学生時代にフラグの判定をしようとして、
    if( !flag & 0x01 ) {

と書いて、何がどう間違っているのか気付くのに
かなりの時間を要してしまったのを思い出しました…もうやだ〜(悲しい顔)


例え自分の中では分かっていても、
パッと見の分かりにくさ、不具合の発生を抑えるため、
できるだけ括弧を付け、優先を見やすくした方が良いと思います!
他の人が見る可能性があるのであれば尚更必要だと思います!

そうすれば今回の問題↓も
(6÷2)(1+2)=
間違う人がグッと減ったんじゃないかと思いますパンチ
決して負け惜しみというわけでは…


みなさんも変な記述ミスで失敗しないよう、
計算の優先順位にはお気を付け下さいわーい(嬉しい顔)

posted by 管理人 at 19:27 | プログラミング