Shammer's Philosophy

My private adversaria

= と ==

よくやってしまうケアレスミスの一つに、代入演算子と比較演算子を間違える、というのがある。
つまり、= と書くべきところを == にしてしまうとか、== とすべきところを = としてしまう、
というもの。後者の方が多いかな。
やっかいなのは、頭でわかっていても不注意でこうやってしまう可能性がある、ということで、
これはなかなか直すことができない(と個人的に思う)。
が、これをやってしまっても簡単に見つけられるようにする方法がある。


 if( 100 == x ) {
  // 何らかの処理
 }


左辺に定数というか、比較したいものを持ってくるようにすることだ。
これは、== の場合にしか使えないが、それでも効果はある。
== の場合は、想定される値を左辺に持ってくる、と自分の中でルールを決めればよい。
これができれば、逆の 100 = x は成り立たない(コンパイルエラーになる)から
コンパイル時には間違えても問題に気付く。
コンパイラは、プログラミングに慣れてくるまではわずらわしいものだが、
慣れてくると自分のミスを事前に見つけてくれる心強い味方だ。
コンパイルが見つけられないエラーを探すのがどれほど大変な作業か・・・
コンパイラを自分の味方にできるようにすることも大切だと思う。