Java If 语句在具有 && AND || 时如何工作[复制]

Posted

技术标签:

【中文标题】Java If 语句在具有 && AND || 时如何工作[复制]【英文标题】:How Java If statements work when having && AND || [duplicate] 【发布时间】:2014-11-07 14:43:03 【问题描述】:

如果你把它写在 if 语句中(这是一个例子):

if (A == 1 && B == 1
||
C == 1 && D == 1)

Java 是否这样认为:如果 A 和 B 等于 1 或 C == 1 且 D == 1,那么它是真的。 或者 Java 是否认为:如果 A 和 B 或 C 等于 1 并且 D 等于 1,那么它是真的。 AND 和 OR 还有更多的可能性..

这是我编程中的一个问题,因为我不确定这个问题。

/维克托

【问题讨论】:

operator== 的优先级高于 operator&&,后者的优先级高于 operator|| 不清楚的时候多加括号。 【参考方案1】:

&& 的优先级高于||,因此首先被解释。即,它相当于

if ((A == 1 && B == 1)
    ||
    (C == 1 && D == 1))

【讨论】:

【参考方案2】:

比较运算符== 的优先级高于AND 逻辑运算符&&,后者的优先级高于OR 逻辑运算符||。 有关详细信息,请参阅文档:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

一般来说,如果您不确定运算符的优先级,请使用brackets

【讨论】:

以上是关于Java If 语句在具有 && AND || 时如何工作[复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 freemarker 中评估 if 语句?

Java规则之条件语句中做空判断时使用||和&&常犯的错误

if语句--java

在 if 语句中使用 && 运算符

Java - 在相同条件下具有 AND 和 OR,没有括号 [重复]

Java & Groovy & Scala & Kotlin - 20.Switch 与模式匹配