Java 中的逻辑运算符2025年4月11日 | 阅读 7 分钟 在 Java 中,逻辑运算符用于对布尔表达式执行逻辑运算。它们通常会评估表达式的两侧。Java 中有三种逻辑 运算符
逻辑与 (&&) 运算符当两个操作数都为真时,AND 运算符返回 true。否则,它返回 false。借助下表,我们可以计算逻辑 AND 运算符的输出。 我们从表中可以看出,如果两个操作数都为真,则返回 true,否则返回 false。 逻辑与运算符的真值表
逻辑与运算符示例示例编译并运行输出 true 在上面的示例中,AND 运算符返回 false,因为条件 y < 10 为 false。 逻辑或 (||) 运算符当至少一个操作数为真时,OR 运算符返回 true。否则,它返回 false。 逻辑或运算符的真值表
逻辑或运算符示例示例编译并运行输出 true 在上面的示例中,OR 运算符返回 true,因为条件 x > 3 为 true,而条件 y < 10 为 false。因此,结果为 true。 逻辑非 (!) 运算符逻辑 NOT 运算符用于反转布尔表达式的值。如果表达式为 true,则 NOT 运算符返回 false;如果表达式为 false,则 NOT 运算符返回 true。 逻辑非运算符的真值表
逻辑非运算符示例示例编译并运行输出 false 逻辑运算符也可以与非布尔表达式一起使用,但首先,它们将根据以下规则转换为布尔值:
例如,以下代码片段打印“至少有一个值为非零”。 在这种情况下,x 为 0,被视为 false,但 y 为 7,被视为 true,因此 OR 运算符返回 true。第三,可以使用括号将逻辑运算符组合成更复杂的表达式,以控制求值顺序。例如,以下代码将打印“两个条件都为真”。 在这种情况下,首先求值表达式 (x > 3 && y < 10),因为两个条件都为真,所以返回 true。然后,求值表达式 (z == 3 && x <= 5),因为 x 大于 5,所以返回 false。 最后,OR 运算符将两个结果组合起来,返回 true,因为至少有一个表达式为 true。总而言之,逻辑运算符是操作布尔值和在 Java 程序中做出决策的强大工具。了解它们的行为以及如何在复杂表达式中有效地使用它们非常重要。 短路求值: Java 的逻辑运算符支持短路求值,这意味着如果可以通过仅求值表达式的一部分来确定表达式的结果,则不会对表达式的其余部分进行求值。这可以提高性能并防止错误。例如,考虑以下代码片段。 在这种情况下,如果 str 为 null,则第一个条件 str != null 为 false,第二个条件 str.length() > 0 将不会被求值,因为整个表达式将已经为 false。这可以防止在尝试访问 null 字符串的长度时抛出 NullPointerException。 位运算符: Java 还有位运算符,用于操作整数值的位。这些运算符包括 AND (&)、OR (|)、XOR (^)、NOT (~)、左移 (<<) 和右移 (>>)。位运算符不是逻辑运算符,因为它们操作的是整数值而不是布尔值。例如,以下代码片段打印 3。 在这种情况下,x 和 y 的二进制表示分别为 101 和 110。位 AND 运算符将比较 x 和 y 的相应位,如果两个位都为 1,则将结果的每一位设置为 1。结果为 100,表示十进制值 4。 优先级: 像算术运算符一样,逻辑运算符也有优先级,它决定了它们的求值顺序。NOT 运算符的优先级最高,然后是 AND,接着是 OR。可以使用括号覆盖默认优先级并控制求值顺序。例如,以下代码将打印“false”。 在这种情况下,首先求值括号内的表达式,因为 x 不等于 6,所以返回 false。然后,将 NOT 运算符应用于结果,将其反转为 true。 三元运算符: Java 还有一个三元运算符 (? :),它可以作为 if-else 语句的简写。三元运算符接受三个操作数:一个布尔表达式,如果表达式为 true 则返回的值,以及如果表达式为 false 则返回的值。例如,以下代码片段打印“x 大于 y”。 在这种情况下,布尔表达式 x > y 为 true,因此返回三元运算符的第一个操作数,即字符串“x is greater than y”。 德摩根定律: 德摩根定律是一组描述如何否定复杂布尔表达式的规则。在 Java 中,德摩根定律可用于简化涉及逻辑运算符的表达式。第一条定律指出,合取(AND)的否定是析取(OR)的否定。换句话说,!(A && B) 等价于 !A || !B。例如,以下代码将打印“x 不等于 3 且 y 不等于 4”。 在这种情况下,表达式 x == 3 || y == 4 求值为 false,因为两个条件都不为真。然后,将 NOT 运算符应用于结果,根据德摩根定律,整个表达式为 true。 逻辑赋值运算符: Java 还有逻辑赋值运算符,它们将逻辑运算符与赋值运算符结合起来。逻辑赋值运算符包括 AND (&=)、OR (|=) 和 XOR (^=)。这些运算符将逻辑运算符应用于左侧操作数和右侧操作数,然后将结果赋给左侧操作数。例如,以下代码将打印“x 现在是 7”。 在这种情况下,OR 运算符应用于 x 和值 2,将 x 的第二位设置为 1。结果是 7,它被重新赋给 x。 相等和关系运算符: 除了逻辑运算符,Java 还有相等和关系运算符,可用于比较值。相等运算符包括 ==(等于)和 !=(不等于),而关系运算符包括 <(小于)、>(大于)、<=(小于等于)和 >=(大于等于)。例如,以下代码片段打印“x 大于 y”。 在这种情况下,使用关系运算符 > 来比较 x 和 y,表达式为 true,因为 x 大于 y。 Java 中逻辑运算符的优点
Java 中逻辑运算符的缺点
|
在 Java 中,对象引用相等性是一个基本概念,它区分了对象引用的比较与对象内容或状态的比较。理解这个概念对于开发人员避免对象比较中的常见陷阱至关重要,尤其是在处理...时。
5 分钟阅读
每个人在编程时都会遇到错误。错误对开发人员来说很糟糕,因为很难处理。有些错误会导致让用户感到困惑的故障。对于应用程序而言,最重要的两项妥协是安全性和保障性。应用程序的类型无关紧要...
阅读 4 分钟
在 Java 中,接口是一种强大的概念,它使我们能够指定类必须遵循的契约。它充当创建具有相关行为的多个类的指南。虽然方法是接口的主要组成部分,但它还可以具有其他有助于...
阅读 4 分钟
屋顶问题是一个常见的编程问题,您需要分析一系列高度,表示一排屋顶的高度,并确定您可以“跳上去”的最大连续屋顶数量。问题详情如下:您将...
5 分钟阅读
比较两个二叉树的结构和节点值以检查它们是否为镜像。一个二叉树是另一个的镜像,如果一个的左子树与另一个的右子树匹配,反之亦然。这涉及递归来遍历和...
阅读9分钟
多线程是 Java 中的一个强大概念,它允许我们创建并发程序,从而有效利用可用资源。理解多线程的一个经典例子是使用两个单独的线程打印奇数和偶数。在本节中,我们将探讨如何实现这一点...
5 分钟阅读
每个编程语言的基本构建块都是运算符。此外,Java 提供了各种各样的运算符,可用于算术、关系、逻辑和其他计算和任务。它们根据它们提供的功能进行分类。赋值运算符:这些运算符可用于...
5 分钟阅读
? Java 是一种通用且广泛使用的编程语言,提供了多种数据结构来管理和操作数据集合。最常用的数据结构之一是 ArrayList。ArrayList 是 Java 集合框架的一部分,并提供动态大小调整功能,使其...
阅读 6 分钟
一个类可以包含多个构造函数。但是,构造函数的参数列表不应该相同。这称为构造函数的重载。下面的程序演示了这一点:ConstructorExpl.java class ConstructorExpl1 { private int n1; public ConstructorExpl1() { n1...
阅读 2 分钟
给定一个包含自然数的数组。我们的任务是根据输入数组中元素的二进制表示中的置位位数对输入数组进行排序。也就是说,一个具有更多置位数的数字...
阅读9分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India