标题: 关于switch语句的使用,请高手进来看看! [打印本页]

作者: xiao_liang2011`    时间: 2013-6-28 14:55
标题: 关于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;
}
谢谢指导!


作者: xiao_liang2011`    时间: 2013-6-28 14:57
自己先说下:调试的时候提示switch表达式有 illegal type
大家看是哪里的问题呢。
作者: ahshmj    时间: 2013-6-28 20:39
case 0:        
{//        _nop_;
//        _nop_;

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

Iset=(float)Vset1/1000;
break;

}
作者: ahshmj    时间: 2013-6-28 20:46
根据你的程序,可能“break;”需要放大括号外面。
作者: xiao_liang2011    时间: 2013-6-29 10:53
ahshmj 发表于 2013-6-28 20:46
根据你的程序,可能“break;”需要放大括号外面。

按你说的试了下
还是不行的
作者: ahshmj    时间: 2013-6-29 18:38
我说的是在每一个“case ”里面都要加大括号,你加了还是不行?
作者: xiao_liang2011    时间: 2013-6-30 10:43
ahshmj 发表于 2013-6-29 18:38
我说的是在每一个“case ”里面都要加大括号,你加了还是不行?

是的,我在每一个case里面都加了啊。还是同样的问题
作者: ahshmj    时间: 2013-6-30 15:56
本帖最后由 ahshmj 于 2013-6-30 17:19 编辑

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;
else                                 //不知道你的本意,但好像不应少这一行         
Vset2=Vset2+5;


Tset=(float)Vset2/1000;
break;
}

红色的是同一个变量的笔误?
作者: ahshmj    时间: 2013-6-30 17:14
像这类问题,请求帮助时,最好将程序完整的传上来。

按上面的改过来,应该是没问题的(我已测试过),但是如果里面牵涉到一些本小段以外的诸如变量或函数的说明、定义等,就难说了。比如“Iset" iset Tset ,都会出错。(提示肯定是不一样的了)
作者: xiao_liang2011    时间: 2013-7-4 22:10
刚刚试了下,不行的。我什么时候把全文发上来大家再看看吧。
多谢楼上的几位了。
作者: zhengguang    时间: 2013-7-5 23:10





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