BohYoh.comトップページへ
Java FAQ
目次

どうしてa == b == cはエラーとなるのですか。

 三つの値abcのすべてが等しいかどうかを判断することを意図した、式a == b == cについて考えましょう。
 等価演算子==は、左オペランドを評価した値と右オペランドを評価した値が等しければtrueを、そうでなければfalseを生成します。いずれにせよ、その型はboolean型となります。
 この演算子は左結合性をもつ2項の演算子ですから、式a == b == c(a == b) == cと解釈されます。したがって、この式は、

  (int == int) == int
     ↓
   boolean == int

と解釈されるため、文法的に正しくないものとなります。
 正しくはa == b && b == cとなります。


戻る

BohYoh.comロゴ