我不斷收到此錯誤:操作=和==未定義的參數類型布爾,詮釋
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);
}
我不斷收到此錯誤:操作=和==未定義的參數類型布爾,詮釋
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);
}
它看起來像keyState[i]
和prevKeyState[i]
都是布爾(真/假值),所以它是沒有意義的,他們比較爲零。也許你想要的是
return (keyState[i] == true) && (prevKeyState[i] == false);
,甚至,更可讀的形式
return keyState[i] && ! prevKeyState[i];
我會提醒自己。謝謝你,先生 :) –
您正在與int
比較一個boolean
。 keyState
和prevKeyState
都是boolean[]
?如果是這樣,這可以解釋爲什麼你看到這個錯誤。
您的語句只是更改爲:
return (keyState[i] && !prevKeyState[i]);
,它應該解決這個問題。
如錯誤消息所示,不能使用!=
將左側的布爾值與右側的整數(0
)進行比較。從錯誤信息判斷,聽起來像keyState
和prevKeyState
都是boolean[]
。
因此,要解決此問題,請將您的陣列更改爲int[]
或測試keyState[i] != false
而不是keyState[i] != 0
。
與C不同,Java有一個boolean
類型,您不應該使用像1和0這樣的整數來表示真/假。
剛剛從編譯器讀取錯誤消息:
keyState和prevKeyState是肯定類型:布爾[]
你的代碼必須是這樣的:
public static boolean isPressed(int i)
{
return (keyState[i]) && (! prevKeyState[i]);
}
你應該這樣做:
return (keyState[i] == true) && (prevKeyState[i] == false);
因爲keystate [i]和prevkeystate [i]是bool類型的,所以您m最後還將它們與布爾相比較。 或者你可以寫:
return keyState[i] && !prevKeyState[i];
我想你已經聲明布爾數組布爾[] keyState和布爾[] prevKeyState,但你沒有說的很清楚這裏。
如果這是真的,那麼您將布爾值keyState [i]和prevKeyState [i]與int值0和1進行比較。
試試這個:
return (keyState[i] && !prevKeyState[i]);
什麼類型'keyState'和'prevKeyState'的? –
錯誤很明顯。其中一個操作數是'int',另一個是'boolean'。 –
@VivinPaliath public static boolean [] keyState = new boolean [3]; public static boolean [] prevKeyState = new boolean [3]; –