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