2011-11-06 67 views
0
if ((one.option != two.option) && (one.side == two.side)) 

我需要檢查上述的Java:括號內的if條件

的followng業務邏輯,所以我這樣寫

if((data[0].getData.value()!=data[1].getData.value()) 
&&(data[0].getAction().value()==data[1].getAction().value())) 

這是正確的?

假設數據[0]代替一個 getData.value()代替top if條件中顯示的選項。

我關心的,如果條件

+0

*爲什麼*你擔心嗎?關於他們的是什麼? –

回答

2

這是正確的,但我個人不會在這個特殊情況下用括號來打擾。我,但是,使用更多的空白。我會寫爲:

if (data[0].getData.value() != data[1].getData.value() 
    && data[0].getAction().value() == data[1].getAction().value()) 

如果你真的想括號,我會寫爲:

if ((data[0].getData.value() != data[1].getData.value()) 
    && (data[0].getAction().value() == data[1].getAction().value())) 

我通常只包括支架,如果我想區分,說,

if ((x && y) || z) 

if (x && (y || z)) 

當然,這是假設值是適合與==!=比較的值。如果它們是字符串或其他對象,則應該使用equals

0

你的括號內的括號 正確。

0

你的if語句是有效的,但很難閱讀。我建議遵循其他人關於空白的建議,並將值分配給變量以提高可讀性。寫得好的代碼不應該需要評論,它應該是自明的你的工作數據!

1

兩個一般性意見。

首先,考慮對這類事情使用測試,特別是測試驅動的開發,在那裏你先寫測試,然後失敗,然後只寫足夠的測試來傳遞它。那麼代碼是否正確也不會有謎。

This是一個練習,將幫助你學習這種方法。其次,基於該代碼片段,它看起來像你的代碼可以使用一些重構來使意圖變得清晰,例如把它們放在一個明確名稱(在你的情況下可能是兩個)的方法中。 TDD往往會導致這種乾淨的代碼,只要您在測試通過後花時間重構。

+0

非常感謝您的幫助,我已經嘗試過了,我只需要一個確認,所以發佈,作爲回報,我得到了寶貴的建議。再次感謝 。 – Pawan