本文介绍了&&的使用和|运算符一起在表达式中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
cond && cond op cond
op
可以是&&
或||
Qn-对于短路(&&
)运算符,如果第一个条件为假,则不评估(整个)右侧部分,或者仅对&&
之后的第二个条件进行评估
Qn- For short circuit (&&
) operator if the first cond is false then right part (whole) is not evaluated or just the second cond after &&
is not evaluated
为什么下面两个表达式的结果不同?
Also why the result of following two expressions different?
(2 > 3 && 5 < 2 || 3 > 2)
=> True
(2 > 3 && 5 < 2 | 3 > 2)
=> False
我们不能在单个表达式中使用短路运算符和标准运算符吗??
Can't we use short circuit operator and standard operators in a single expression...?
推荐答案
结果不同,因为|
和||
具有不同的优先级.
具体来说,|
的优先级高于&&
,而||
的优先级低于&&
.
Specifically, |
has higher precedence than &&
, whereas ||
has lower precedence than &&
.
System.out.println(2 > 3 && 5 < 2 || 3 > 2); // true
System.out.println(2 > 3 && 5 < 2 | 3 > 2); // false
System.out.println(2 > 3 && (5 < 2 | 3 > 2)); // false
System.out.println((2 > 3 && 5 < 2) | (3 > 2)); // true
这篇关于&&的使用和|运算符一起在表达式中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!