2008-08-22 演算子 java 関係演算子 成立すればtrue、そうでなければfalse x < y x > y x <= y x >= y 等価演算子 成立すればtrue、そうでなければfalse x == y x != y 論理補数演算子 xがtrueなら、false xがfalseなら、true !x 論理積演算子 xとyの両方ともtrueであればtrueを、そうでなければfalse x && y 論理和演算子 xとyの一方でもtrueであればtrueを、そうでなければfalse x || y 論理積演算子と論理和演算子に関する注意事項 短絡評価 例えば、以下のような論理積演算をする場合、xがfalseと評価されると、yを評価するまでもなく、 演算結果はfalseと確定する。そのような場合、yの評価は行われない。 x && y 同様に、以下のような論理和演算をする場合、xがtrueと評価されると、y、zの評価をすることなく、演算結果はtrueと確定する。そのような場合、yとzの評価は行われない。 x || y || z このように論理演算式の結果が、左のオペランドの評価のみで明確になる場合、右オペランドの評価を行わないことを短絡評価という。 ビット単位の論理演算 x & yxとyのビット単位の論理積を生成 x | yxとyのビット単位の論理和を生成 x ^ yxとyのビット単位の排他的論理和を生成 ~xxのビット単位の補数(全ビットを反転した値)を生成 シフト演算 x << n xをnビット左シフトして空いたビットに0を埋めた値を生成 x >> n xをnビット右シフトして空いたビットにシフト前の符号ビットを埋めた値を生成 x >>> n xをnビット右シフトして空いたビットに0を埋めた値を生成