我一直收到这个错误:
对于参数类型boolean,int
,运算符!=和==未定义
我的代码,我不知道如何解决它。非常感谢帮助:)谢谢!
public static boolean isPressed(int i)
{
return (keyState[i] != 0) && (prevKeyState[i] == 0);
}
答案 0 :(得分:2)
看起来keyState[i]
和prevKeyState[i]
是布尔值(true / false值),因此将它们与零进行比较是没有意义的。也许你想要的是
return (keyState[i] == true) && (prevKeyState[i] == false);
或甚至以更易读的形式
return keyState[i] && ! prevKeyState[i];
答案 1 :(得分:1)
你应该这样做:
return (keyState[i] == true) && (prevKeyState[i] == false);
因为keystate [i]和prevkeystate [i]属于bool类型,所以你还必须将它们与bool进行比较。 或者你可以写:
return keyState[i] && !prevKeyState[i];
答案 2 :(得分:0)
您正在将boolean
与int
进行比较。 keyState
和prevKeyState
类型都是boolean[]
和return (keyState[i] && !prevKeyState[i]);
吗?如果是这样,这可以解释为什么你会看到这个错误。
只需将您的陈述更改为:
{{1}}
它应该解决问题。
答案 3 :(得分:0)
正如错误消息所示,您无法使用!=
将左侧的布尔值与右侧的整数(0
)进行比较。从错误消息判断,听起来keyState
和prevKeyState
都是boolean[]
。
要解决此问题,请将数组更改为int[]
或测试keyState[i] != false
而不是keyState[i] != 0
。
与C不同,Java具有boolean
类型,您不应该使用像1和0这样的整数代表真/假。
答案 4 :(得分:0)
只需从编译器中读取错误消息:
keyState和prevKeyState肯定是类型:boolean []
您的代码必须如下所示:
public static boolean isPressed(int i)
{
return (keyState[i]) && (! prevKeyState[i]);
}
答案 5 :(得分:0)
我认为你已经声明了布尔数组boolean [] keyState和boolean [] prevKeyState,但是你没有在这里说清楚。
如果这是真的,那么你将布尔值keyState [i]和prevKeyState [i]与int值0和1进行比较。
试试这个:
return (keyState[i] && !prevKeyState[i]);