如何/可以同时使用&&和||在相同的if语句条件下?

时间:2013-03-26 03:04:22

标签: java operators logical-operators

哪个逻辑运算符优先于另一个“优先”或“读取”,所以说。

例如:

if( x=y || y=y && x=x ){}

是java读这个:这两个中的一个:(x = y || y = y),AND(x = x)

或as:(x = y)或(y = y AND x = x)


听起来像是会被问到或至少很容易找到的东西,但唉,“和”+“或”是谷歌的关键词。

2 个答案:

答案 0 :(得分:8)

运营商&&的优先级高于||,因此首先评估&&

http://introcs.cs.princeton.edu/java/11precedence/

但是,许多程序员仍然不记得这个事实。使用括号来明确说明预期的评估顺序更清晰,更易于维护。

请注意,在您编写的代码中

x=y

实际上是赋值运算符,而不是相等运算符。想必是你打算

x==y

答案 1 :(得分:0)

只有当x和y都是布尔值时,

x=y || y=y && x=x才能工作,因为=是赋值,它等同于y || y && y,因为你在第一次操作中分配了x = y in