哪个逻辑运算符优先于另一个“优先”或“读取”,所以说。
例如:
if( x=y || y=y && x=x ){}
是java读这个:这两个中的一个:(x = y || y = y),AND(x = x)
或as:(x = y)或(y = y AND x = x)
听起来像是会被问到或至少很容易找到的东西,但唉,“和”+“或”是谷歌的关键词。
答案 0 :(得分:8)
运营商&&
的优先级高于||
,因此首先评估&&
。
http://introcs.cs.princeton.edu/java/11precedence/
但是,许多程序员仍然不记得这个事实。使用括号来明确说明预期的评估顺序更清晰,更易于维护。
请注意,在您编写的代码中
x=y
实际上是赋值运算符,而不是相等运算符。想必是你打算
x==y
答案 1 :(得分:0)
x=y || y=y && x=x
才能工作,因为=是赋值,它等同于y || y && y
,因为你在第一次操作中分配了x = y in