switch语句中,case后面怎么做才能检测字符?
本帖最后由 血阳 于 2015-4-22 00:17 编辑我编写程序想实现的功能是当我键盘按下某个键的时候,板子会做出相应的反应,但是我好想在编译的时候就出现了问题,报错是“case label ''w'' not within a switch statement”
求大神指导,在switch里面,怎么用才能检测字符?
下面是我程序中,该报错地方相应代码,其他地方没问题就不粘贴了,里面forward,back……这些都是函数,有声明了的。就想问问我的这个问题怎么解决。
char comtemp;
switch(comtemp);
{
case 'w':
forward(250);
break;
case 's':
back(250);
break;
case'a':
turnLeftOrigin(250);
break;
case'd':
turnRightOrigin(250);
break;
case'q':
turnLeft(250);
break;
case'e':
turnRight(250);
break;
case't':
_stop();
break;
default:
_stop();
break;
}
} 你把字母换成对应的asc码值,试一试应该能行的 毛驴 发表于 2015-4-20 17:03 static/image/common/back.gif
你把字母换成对应的asc码值,试一试应该能行的
有道理~我试试~ switch(comtemp);——去掉分号 ofourme 发表于 2015-4-20 17:41 static/image/common/back.gif
switch(comtemp);——去掉分号
{:3_51:}囧囧囧··············竟然没发现·············谢谢提醒~ 血阳 发表于 2015-4-20 17:35 static/image/common/back.gif
有道理~我试试~
没道理 !
你的问题只是如楼下说的多写一个分号 ;
任何时候'A' 就是 65, 'B' 就是 66
所以
int gg = 'A';
和
int gg = 65;
这两句是完全相同的;
switch( ) { case 的 case 虽然规定是 int,
可是 char 也是一种 int,
所以为了方便人阅读, 不应该换为 ASCII 值来写,
直接写像 case 'A':case 'B': case 'w':比较好 !
tsaiwn 发表于 2015-4-21 12:06 static/image/common/back.gif
没道理 !
你的问题只是如楼下说的多写一个分号 ;
是的。也发现了{:3_54:} tsaiwn 发表于 2015-4-21 12:06 static/image/common/back.gif
没道理 !
你的问题只是如楼下说的多写一个分号 ;
好仔细的解释~~谢谢啦~(づ ̄3 ̄)づ╭❤~
页:
[1]