逻辑运算#
取反#
在布尔值前加!
操作符可对其逻辑取反。!
属于一元操作符(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
。