2012-08-28 27 views
-7
public boolean isRight() { 
    if(xposition == ((oposition-1) && (oposition != (12 && 8 && 4))) { 
     return true; 
    } else { 
     return false; 
    } 
} 

「xposition」和「oposition」在程序運行期間分配值。使用&&運算符時出錯

的錯誤是在(12 && 8 && 4)我需要確保「oposition」的值不等於12和8和4

我不知道什麼是錯在這裏。請幫忙

+6

它是java或c + +? – Kos

+3

您的預期成果是什麼? –

+0

你有什麼錯誤? – Tudor

回答

2

也許正確的邏輯是:

if(xposition == ((oposition-1) && (oposition != 12 && oposition != 8 && oposition != 4))) 

如果你有很多數字:

int[] numbers = { 
    12, 8, 4, 13, 2, 7 
}; 
boolean validation = true; 
for (int i : numbers) { 
    if (oposition == i) { 
     validation = false; 
     break; 
    } 
} 
+0

謝謝。如果它變得冗長有關係嗎?我有大約十二個數字,這不應該等於反對。我是否將它們寫成oport!= 12次不同的時間? – user1506106

+0

在這種情況下,更好的方法是使用數組中的循環與數字列表。 –

6

I don't know what is wrong here.

的邏輯。你期望(12 && 8 && 4)能評估什麼? (提示:這是true

你認爲oposition != (12 && 8 && 4)意味着opposition比這些值不同?

+1

「真」,當然! – verdesmarald

+1

@veredesmarald你得到+1互聯網。 –

+1

在C++中有所作爲,但Java甚至允許'true && 4'?我不記得 – Kos

1

雖然我不知道你的錯誤信息,可能是問題,您比較xposition(看起來像一個數字),括號內的結果爲operator&&

此後,您還試圖將oposition(12 && 8 && 4)的結果進行比較,即使語言允許,結果也不會很有用。

注意圓括號。

也許你的意思是這樣的:

if (xposition == opposition-1 
    && opposition != 12 
    && opposition != 8 
    && opposition != 4) 
{ 
    // ... 
} 

壓痕幫助時,有很多條件。

+0

非常感謝。 – user1506106

0

這裏的問題是,你正在比較一個布爾語句到一個(潛在的)int值。我想你需要的是:

if((xposition == oposition-1) && 
     (oposition != 12 && oposition != 8 && oposition != 4))) 

聲明12 & & 4是沒有意義的。您已將與您的變量進行比較。