找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5239|回复: 14
收起左侧

关于switch语句使用,提示表达式不合法。求指导

  [复制链接]
ID:51349 发表于 2013-6-28 14:49 | 显示全部楼层 |阅读模式
请大神看看这段代码问题在哪里呢?
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
回复

使用道具 举报

ID:7485 发表于 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;

}
回复

使用道具 举报

ID:51325 发表于 2013-6-29 10:43 | 显示全部楼层
好像不行啊
我加入了大括号还是不行啊。怎么回事呢
回复

使用道具 举报

ID:51325 发表于 2013-6-29 10:43 | 显示全部楼层
ahshmj 发表于 2013-6-28 20:35
要使用大括号。
case 0:        
{ //        _nop_;

我加入大括号还是提示相同的问题啊
这是什么原因呢?
回复

使用道具 举报

ID:51381 发表于 2013-6-29 18:23 | 显示全部楼层
我也是这个毛病啊!  不好用
回复

使用道具 举报

ID:51564 发表于 2013-7-9 20:37 | 显示全部楼层
加入default及break后呢?、Tset定义为什么?、
回复

使用道具 举报

ID:48241 发表于 2013-7-11 16:08 | 显示全部楼层
key_mode是什么数据类型?
回复

使用道具 举报

ID:51883 发表于 2013-7-15 21:14 | 显示全部楼层
说实话  我也没见过 switch 语句 像你这么写的
回复

使用道具 举报

ID:400814 发表于 2018-10-29 09:50 | 显示全部楼层
电脑出错,我碰到过怎么弄都不行。复制编译通过的别的程序中的大括号就行了。
回复

使用道具 举报

ID:213173 发表于 2018-10-29 12:31 | 显示全部楼层
key_mode的数据类型改为unsigned char型,不可以使用bit型。
回复

使用道具 举报

ID:417206 发表于 2018-10-29 13:33 | 显示全部楼层
问题出在key_mode上,不过里面至少每个加上括号以及default
回复

使用道具 举报

ID:417213 发表于 2018-10-29 13:43 | 显示全部楼层

说实话  我也没见过 switch 语句 像你这么写的
回复

使用道具 举报

ID:279667 发表于 2018-10-29 14:30 | 显示全部楼层
注意switch括号中的数据类型,还有case条件句的执行代码,需要使用大括号括起来或者使用TAB键进行缩进
回复

使用道具 举报

ID:415459 发表于 2018-10-29 14:51 | 显示全部楼层
看出错原因说是switc的表达式类型不对,也就是key-mode,你可以定位到出错行,170行
回复

使用道具 举报

ID:417297 发表于 2018-10-29 15:45 | 显示全部楼层
如果需要在case里定义变量要加{}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表