布尔值是评估为 true
或 false
的值,由 boolean
数据类型表示。布尔表达式与数学表达式非常相似,但您不使用 "+" 或 "-" 等数学运算符,而是使用 "==" 或 "!" 等比较或布尔运算符。
Java 有几个运算符可以用于比较变量。例如,您如何判断一个变量的值是否大于另一个变量的值?答案:使用“大于”运算符。
以下是 Java 中比较运算符的列表
>
: 大于
<
: 小于
>=
: 大于或等于
<=
: 小于或等于
==
: 等于
!=
: 不等于
要查看这些运算符的使用方法,请查看以下示例
代码部分 3.37:比较。
int a = 5 , b = 3 ;
System . out . println ( a > b ); // Value is true because a is greater than b
System . out . println ( a == b ); // Value is false because a does not equal b
System . out . println ( a != b ); // Value is true because a does not equal b
System . out . println ( b <= a ); // Value is true because b is less than a
代码部分 3.37 的输出
true
false
true
true
比较运算符可以用于任何基本类型(除了 boolean
),但只有“等于”和“不等于”运算符适用于对象。这是因为小于/大于运算符不能应用于对象,但等价运算符可以。
具体来说,==
和 !=
运算符测试两个变量是否指向同一个对象。对象将在本教程后面的“类、对象和类型 ”模块中进行介绍。
Java 布尔运算符基于 布尔代数 的运算。布尔运算符直接对布尔值进行操作。
以下是 Java 中四个常见布尔运算符的列表
!
: 布尔非
&&
: 布尔与
||
: 布尔或
^
: 布尔异或
布尔非运算符(“!”)将布尔表达式的值取反。布尔与运算符(“&&”)仅当运算符两侧的值都为真时才返回真。布尔或运算符(“||”)仅当运算符两侧的值至少有一个为真时才返回真。布尔异或运算符(“^”)仅当运算符两侧的值只有一个为真时才返回真。
为了展示这些运算符的使用方法,以下是一个示例
代码部分 3.38:操作数。
boolean iMTrue = true ;
boolean iMTrueToo = true ;
boolean iMFalse = false ;
boolean iMFalseToo = false ;
System . out . println ( "NOT operand:" );
System . out . println ( ! iMTrue );
System . out . println ( ! iMFalse );
System . out . println ( ! ( 4 < 5 ));
System . out . println ( "AND operand:" );
System . out . println ( iMTrue && iMTrueToo );
System . out . println ( iMFalse && iMFalseToo );
System . out . println ( iMTrue && iMFalse );
System . out . println ( iMTrue && ! iMFalse );
System . out . println ( "OR operand:" );
System . out . println ( iMTrue || iMTrueToo );
System . out . println ( iMFalse || iMFalseToo );
System . out . println ( iMTrue || iMFalse );
System . out . println ( iMFalse || ! iMTrue );
System . out . println ( "XOR operand:" );
System . out . println ( iMTrue ^ iMTrueToo );
System . out . println ( iMFalse ^ iMFalseToo );
System . out . println ( iMTrue ^ iMFalse );
System . out . println ( iMFalse ^ ! iMTrue );
代码部分 3.38 的输出
NOT operand:
false
true
false
AND operand:
true
false
false
true
OR operand:
true
false
true
false
XOR operand:
false
false
true
false
以下是布尔运算符的真值表
a
!a
true
false
false
true
a
b
a && b
a || b
a ^ b
true
true
true
true
false
true
false
false
true
true
false
true
false
true
true
false
false
false
false
false
有关简化复杂逻辑的帮助,请参阅 德摩根定律 。
在 Java 中,布尔逻辑有一个名为短路 的有用属性。这意味着表达式将仅根据需要进行评估。在表达式 (a && b)
中,如果 a 为假,则 b 不会被评估,因为无论如何表达式都将为假。以下是一个显示第二个表达式不会自动检查的示例
代码部分 3.39:短路。
System . out . println (( 4 < 5 ) || (( 10 / 0 ) == 2 ));
代码部分 3.39 的输出
true
要禁用此属性,可以使用 &
代替 &&
,使用 |
代替 ||
,但建议不要这样做。
有关 &
和 |
上的按位运算,请参阅 算术表达式 。