2013-03-26 99 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在第一操作

相關問題