如何解决有关开关的问题
| 我是Java初学者,所以这段代码有什么问题:switch(keycode) {
case Keyboard.KEY_UP || Keyboard.KEY_DOWN:
}
我给我以下错误信息:
bad operand types for binary operator \'||\'
first type: int
second type: int
解决方法
您正在将逻辑或运算符
||
应用于不允许的整数。您可以将逻辑运算符仅应用于布尔操作数。
由于要在keycode
是Keyboard.KEY_UP
或Keyboard.KEY_DOWN
时执行相同的case块,因此请使用贯穿式case块:
switch(keycode) {
case Keyboard.KEY_UP: /* fall through */
case Keyboard.KEY_DOWN: /* Common code when keycode is either
KEY_UP or KEY_DOWN */
break;
}
, switch(keycode)
{
case Keyboard.KEY_UP:
case Keyboard.KEY_DOWN:
// code to run...
break;
}
见“ѭ8”声明
, 您了解||表示“或”,但您没有完全的了解。 ||是仅两个布尔变量之间的比较器
要么是正确的||假。不能是粉笔||起司。
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
是对还是错,and13ѭ是对还是错。
当在可接受的答案中可以执行多个情况之前,使用ѭ14
, 改成
switch (keycode) {
case Keyboard.KEY_UP:
case Keyboard.KEY_DOWN:
// Do something,then
break;
}
, switch(keycode) {
case Keyboard.KEY_UP:
case Keyboard.KEY_DOWN:
// code here
break;
...
}
, 您不能使用switch来做到这一点(至少在Java中不是这样)。你必须要做
switch(keycode) {
case Keyboard.KEY_UP:
case Keyboard.KEY_DOWN:
doKeyStuff();
break;
, 如果您希望两个值都具有相同的行为,请不要使用||。运算符,只有第一种情况适用于第二种情况:
switch(keycode) {
case Keyboard.KEY_UP:
case Keyboard.KEY_DOWN:
break;
, 您不能对数字使用逻辑运算。
你可以写这个
switch(keycode) {
case Keyboard.KEY_UP | Keyboard.KEY_DOWN:
}
但是,这并不能满足您的期望,因为键码必须是这些值的组合。您的意图可能是
switch(keycode) {
case Keyboard.KEY_UP: case Keyboard.KEY_DOWN:
}
这将匹配这两个值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。