2014-03-03 48 views
0

我不斷收到此錯誤:操作=和==未定義的參數類型布爾,詮釋

The operator != and == is undefined for the argument type(s) boolean, int

在我的代碼,我必須做什麼來解決它不知道。幫助將不勝感激:)謝謝!

public static boolean isPressed(int i) 
{ 
    return (keyState[i] != 0) && (prevKeyState[i] == 0); 
} 
+1

什麼類型'keyState'和'prevKeyState'的? –

+2

錯誤很明顯。其中一個操作數是'int',另一個是'boolean'。 –

+0

@VivinPaliath public static boolean [] keyState = new boolean [3]; public static boolean [] prevKeyState = new boolean [3]; –

回答

2

它看起來像keyState[i]prevKeyState[i]都是布爾(真/假值),所以它是沒有意義的,他們比較爲零。也許你想要的是

return (keyState[i] == true) && (prevKeyState[i] == false); 

,甚至,更可讀的形式

return keyState[i] && ! prevKeyState[i]; 
+0

我會提醒自己。謝謝你,先生 :) –

0

您正在與int比較一個booleankeyStateprevKeyState都是boolean[]?如果是這樣,這可以解釋爲什麼你看到這個錯誤。

您的語句只是更改爲:

return (keyState[i] && !prevKeyState[i]); 

,它應該解決這個問題。

0

如錯誤消息所示,不能使用!=將左側的布爾值與右側的整數(0)進行比較。從錯誤信息判斷,聽起來像keyStateprevKeyState都是boolean[]

因此,要解決此問題,請將您的陣列更改爲int[]或測試keyState[i] != false而不是keyState[i] != 0

與C不同,Java有一個boolean類型,您不應該使用像1和0這樣的整數來表示真/假。

0

剛剛從編譯器讀取錯誤消息:

keyState和prevKeyState是肯定類型:布爾[]

你的代碼必須是這樣的:

public static boolean isPressed(int i) 
{ 
    return (keyState[i]) && (! prevKeyState[i]); 
} 
1

你應該這樣做:

return (keyState[i] == true) && (prevKeyState[i] == false); 

因爲keystate [i]和prevkeystate [i]是bool類型的,所以您m最後還將它們與布爾相比較。 或者你可以寫:

return keyState[i] && !prevKeyState[i]; 
0

我想你已經聲明布爾數組布爾[] keyState和布爾[] prevKeyState,但你沒有說的很清楚這裏。

如果這是真的,那麼您將布爾值keyState [i]和prevKeyState [i]與int值0和1進行比較。

試試這個:

return (keyState[i] && !prevKeyState[i]); 
相關問題