跳转到内容

布尔表达式

100% developed
来自维基教科书,开放书籍,开放世界

导航 语言基础 主题: v  d  e )


布尔值是评估为 truefalse 的值,由 boolean 数据类型表示。布尔表达式与数学表达式非常相似,但您不使用 "+" 或 "-" 等数学运算符,而是使用 "==" 或 "!" 等比较或布尔运算符。

比较运算符

[编辑 | 编辑源代码]

Java 有几个运算符可以用于比较变量。例如,您如何判断一个变量的值是否大于另一个变量的值?答案:使用“大于”运算符。

以下是 Java 中比较运算符的列表

  • > : 大于
  • < : 小于
  • >= : 大于或等于
  • <= : 小于或等于
  • == : 等于
  • != : 不等于

要查看这些运算符的使用方法,请查看以下示例

Example 代码部分 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
Computer code 代码部分 3.37 的输出
true
false
true
true

比较运算符可以用于任何基本类型(除了 boolean),但只有“等于”和“不等于”运算符适用于对象。这是因为小于/大于运算符不能应用于对象,但等价运算符可以。

Note 具体来说,==!= 运算符测试两个变量是否指向同一个对象。对象将在本教程后面的“类、对象和类型”模块中进行介绍。

布尔运算符

[编辑 | 编辑源代码]

Java 布尔运算符基于 布尔代数 的运算。布尔运算符直接对布尔值进行操作。

以下是 Java 中四个常见布尔运算符的列表

  • ! : 布尔非
  • && : 布尔与
  • || : 布尔或
  • ^ : 布尔异或

布尔非运算符(“!”)将布尔表达式的值取反。布尔与运算符(“&&”)仅当运算符两侧的值都为真时才返回真。布尔或运算符(“||”)仅当运算符两侧的值至少有一个为真时才返回真。布尔异或运算符(“^”)仅当运算符两侧的值只有一个为真时才返回真。

为了展示这些运算符的使用方法,以下是一个示例

Example 代码部分 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);
Computer code 代码部分 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 不会被评估,因为无论如何表达式都将为假。以下是一个显示第二个表达式不会自动检查的示例

Example 代码部分 3.39:短路。
System.out.println((4 < 5) || ((10 / 0) == 2));
Computer code 代码部分 3.39 的输出
true

要禁用此属性,可以使用 & 代替 &&,使用 | 代替 ||,但建议不要这样做。

有关 &| 上的按位运算,请参阅 算术表达式


华夏公益教科书