我是一名java初学者,所以这段代码出了什么问题:
switch(keycode) {
case Keyboard.KEY_UP || Keyboard.KEY_DOWN:
}
我向我提供了以下错误消息:
bad operand types for binary operator '||'
first type: int
second type: int
答案 0 :(得分:5)
switch(keycode)
{
case Keyboard.KEY_UP:
case Keyboard.KEY_DOWN:
// code to run...
break;
}
答案 1 :(得分:4)
您正在将逻辑或运算符||
应用于不允许的整数。您可以将逻辑运算符仅应用于布尔操作数。
由于您希望在keycode
为Keyboard.KEY_UP
或Keyboard.KEY_DOWN
时执行相同的案例块,请使用详细信息块:
switch(keycode) {
case Keyboard.KEY_UP: /* fall through */
case Keyboard.KEY_DOWN: /* Common code when keycode is either
KEY_UP or KEY_DOWN */
break;
}
答案 2 :(得分:3)
你明白||意思是“或”但你没有完全理解。 ||是两个布尔变量仅
之间的比较器有些东西是真的||假。它不能是粉笔||干酪。
switch语句是一个整数比较器。你可以改变
int number =3
switch(number)
case 1: one(); break;
case 2: two(); break;
case 3: three(); break;
到
if(number == 1) one();
else if(number ==2) two();
else if(number == 3) three();
看起来你想要做的是
if(number == 1 || number == 2)
您会注意到number == 1
为真或假,number == 2
为真或假。
break;
打破结构之前执行多个案例,那么switch语句非常有用
答案 3 :(得分:2)
更改为
switch (keycode) {
case Keyboard.KEY_UP:
case Keyboard.KEY_DOWN:
// Do something, then
break;
}
答案 4 :(得分:1)
switch(keycode) {
case Keyboard.KEY_UP:
case Keyboard.KEY_DOWN:
// code here
break;
...
}
答案 5 :(得分:1)
你不能用switch做到这一点(至少不是用Java)。你必须要做
switch(keycode) {
case Keyboard.KEY_UP:
case Keyboard.KEY_DOWN:
doKeyStuff();
break;
答案 6 :(得分:1)
如果您希望两个值具有相同的行为,请不要使用||操作员,只有第一个案例落到第二个案例:
switch(keycode) {
case Keyboard.KEY_UP:
case Keyboard.KEY_DOWN:
break;
答案 7 :(得分:1)
您不能对数字使用逻辑运算。
你可以写这个
switch(keycode) {
case Keyboard.KEY_UP | Keyboard.KEY_DOWN:
}
然而,由于键码必须是这些值的组合,因此这不会达到预期效果。您的意图可能是
switch(keycode) {
case Keyboard.KEY_UP: case Keyboard.KEY_DOWN:
}
这将匹配任一值。