哪个逻辑运算符比其他运算符“优先”或“读取”要好得多。如何/你可以同时使用&&和||在相同的if语句条件中?
例如:
if(x=y || y=y && x=x){}
是用java阅读本为:其中一个的两个:(X = Y || Y = Y)和(X = X)
或如:或者(x = y)或(y = y AND x = x)
听起来像一些本来会被问到或至少容易找到的东西,但是,“和”+“或”是Google的关键字。
哪个逻辑运算符比其他运算符“优先”或“读取”要好得多。如何/你可以同时使用&&和||在相同的if语句条件中?
例如:
if(x=y || y=y && x=x){}
是用java阅读本为:其中一个的两个:(X = Y || Y = Y)和(X = X)
或如:或者(x = y)或(y = y AND x = x)
听起来像一些本来会被问到或至少容易找到的东西,但是,“和”+“或”是Google的关键字。
运营商&&
优先于||
,所以&&
将首先被评估。
http://introcs.cs.princeton.edu/java/11precedence/
尽管如此,许多程序员会不记得这个事实。使用括号来明确说明预期的评估顺序更清晰且更易于维护。在您的代码编写
x=y
注意,实际上是赋值运算符,而不是平等的经营者。想必你打算
x==y
x=y || y=y && x=x
只能工作,如果x和y都为布尔值,因为=是赋值,因为你在指定的X = Y在第一操作
任何原因,你就相当于
y || y && y
不能自己测试一下吗? – 2013-03-26 03:05:32http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html – Jayan 2013-03-26 03:05:57
在这种情况下,请始终使用括号来表示清晰度 – Krease 2013-03-26 03:06:49