2013-03-26 96 views
0

哪个逻辑运算符比其他运算符“优先”或“读取”要好得多。如何/你可以同时使用&&和||在相同的if语句条件中?

例如:

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

是用java阅读本为:其中一个的两个:(X = Y || Y = Y)和(X = X)

或如:或者(x = y)或(y = y AND x = x)


听起来像一些本来会被问到或至少容易找到的东西,但是,“和”+“或”是Google的关键字。

+0

任何原因,你就相当于y || y && y不能自己测试一下吗? – 2013-03-26 03:05:32

+5

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html – Jayan 2013-03-26 03:05:57

+2

在这种情况下,请始终使用括号来表示清晰度 – Krease 2013-03-26 03:06:49

回答

5

运营商&&优先于||,所以&&将首先被评估。

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

尽管如此,许多程序员会不记得这个事实。使用括号来明确说明预期的评估顺序更清晰且更易于维护。在您的代码编写

x=y 

注意,实际上是赋值运算符,而不是平等的经营者。想必你打算

x==y 
+3

附加使用'()'分隔逻辑语句。这使代码更容易阅读,并使您的意思透明。 – ajp15243 2013-03-26 03:09:00

+0

Dang,除了链接优先顺序之外,你还说了我想说的一切。 +1 – Krease 2013-03-26 03:12:53

+0

谢谢! 我知道这两个帐户,只是问。无论如何,x == x并没有多大意义。 – House3272 2013-03-26 15:59:40

0

x=y || y=y && x=x只能工作,如果x和y都为布尔值,因为=是赋值,因为你在指定的X = Y在第一操作

相关问题