逻辑运算#

取反#

在布尔值前加!操作符可对其逻辑取反。!属于一元操作符(Unary operator),只要求一个操作数。

由一元操作符和表达式组成的式子叫做一元表达式(Unary operator expression)。

对真表达式取反得到false,对假表达式取反得到true

条件与、或#

使用&&||等二元操作符可对两个布尔值进行条件与(and)、或(or)操作。

&&:一个布尔值为假时结果为假。
||:一个布尔值为真时结果为真。

逻辑与、或、异或#

使用&|^等二元操作符可对两个布尔值进行逻辑与、或、异或(exclusive or/xor)操作。

&:两个布尔值为真时结果为真。
^:两个布尔值不同时结果为真。
|:两个布尔值为假时结果为假。

逻辑与、或会执行两个表达式,如果不必须执行则应该用条件与、或。

jshell> true | (0 / 0) == 0
|  异常错误 java.lang.ArithmeticException:/ by zero
|        at (#1:1)

比较#

两个表达式可用==(相等)或!=(不相等)比较。

两个数还可用<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)比较。

特别地,NaN不等于任何数(包括它自己),即NaN != NaN

条件操作符#

条件操作符的语法为条件 ? A : B,其要求三个操作数,属于三元表达式(Ternary operator expression)或条件表达式(Conditional expression)。当条件为真时结果为A,否则为B