标题: 关于switch语句使用,提示表达式不合法。求指导 [打印本页]

作者: xiao_liang2011`    时间: 2013-6-28 14:49
标题: 关于switch语句使用,提示表达式不合法。求指导
请大神看看这段代码问题在哪里呢?
switch(key_mode)

{
case 0:       
//        _nop_;
//        _nop_;

if(!key_add)
Vset1++;
if(!key_sub)
Vset1--;

Iset=(float)Vset1/1000;
break;

case 1:       
//        _nop_;
//        _nop_;

if(!key_add)
Vset2=Vset2-5;

Vset2=Vset2+5;


Tset=(float)Vset2/1000;
break;
}
谢谢指导!

图片1.png (4.7 KB, 下载次数: 199)

图片1.png

作者: ahshmj    时间: 2013-6-28 20:35
本帖最后由 ahshmj 于 2013-6-28 20:37 编辑

要使用大括号。
case 0:        
{ //        _nop_;
//        _nop_;

if(!key_add)
Vset1++;
if(!key_sub)
Vset1--;

Iset=(float)Vset1/1000;
break;

}

作者: xiao_liang2011    时间: 2013-6-29 10:43
好像不行啊
我加入了大括号还是不行啊。怎么回事呢
作者: xiao_liang2011    时间: 2013-6-29 10:43
ahshmj 发表于 2013-6-28 20:35
要使用大括号。
case 0:        
{ //        _nop_;

我加入大括号还是提示相同的问题啊
这是什么原因呢?
作者: №★记得♂微笑    时间: 2013-6-29 18:23
我也是这个毛病啊!  不好用
作者: 听,美妙的旋律    时间: 2013-7-9 20:37
加入default及break后呢?、Tset定义为什么?、
作者: wenge    时间: 2013-7-11 16:08
key_mode是什么数据类型?
作者: 一如平常。    时间: 2013-7-15 21:14
说实话  我也没见过 switch 语句 像你这么写的
作者: JXDPJ    时间: 2018-10-29 09:50
电脑出错,我碰到过怎么弄都不行。复制编译通过的别的程序中的大括号就行了。
作者: wulin    时间: 2018-10-29 12:31
key_mode的数据类型改为unsigned char型,不可以使用bit型。
作者: qianj1986    时间: 2018-10-29 13:33
问题出在key_mode上,不过里面至少每个加上括号以及default
作者: @fmj    时间: 2018-10-29 13:43

说实话  我也没见过 switch 语句 像你这么写的
作者: mrhan1992    时间: 2018-10-29 14:30
注意switch括号中的数据类型,还有case条件句的执行代码,需要使用大括号括起来或者使用TAB键进行缩进
作者: wc411421    时间: 2018-10-29 14:51
看出错原因说是switc的表达式类型不对,也就是key-mode,你可以定位到出错行,170行
作者: 353972149@qq.co    时间: 2018-10-29 15:45
如果需要在case里定义变量要加{}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1