血阳 发表于 2015-4-20 16:29:43

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;
      }
    }

毛驴 发表于 2015-4-20 17:03:52

你把字母换成对应的asc码值,试一试应该能行的

血阳 发表于 2015-4-20 17:35:13

毛驴 发表于 2015-4-20 17:03 static/image/common/back.gif
你把字母换成对应的asc码值,试一试应该能行的

有道理~我试试~

ofourme 发表于 2015-4-20 17:41:14

switch(comtemp);——去掉分号

血阳 发表于 2015-4-20 18:29:54

ofourme 发表于 2015-4-20 17:41 static/image/common/back.gif
switch(comtemp);——去掉分号

{:3_51:}囧囧囧··············竟然没发现·············谢谢提醒~

tsaiwn 发表于 2015-4-21 12:06:14

血阳 发表于 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':比较好 !

血阳 发表于 2015-4-21 23:42:34

tsaiwn 发表于 2015-4-21 12:06 static/image/common/back.gif
没道理 !

你的问题只是如楼下说的多写一个分号 ;


是的。也发现了{:3_54:}

血阳 发表于 2015-4-21 23:43:04

tsaiwn 发表于 2015-4-21 12:06 static/image/common/back.gif
没道理 !

你的问题只是如楼下说的多写一个分号 ;


好仔细的解释~~谢谢啦~(づ ̄3 ̄)づ╭❤~
页: [1]
查看完整版本: switch语句中,case后面怎么做才能检测字符?