打印

请教:switch,case嵌套

[复制链接]
4156|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuanquan12345|  楼主 | 2011-3-11 09:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
switch(key1n)
    {
   case 1:
        switch(key3n)
        {
      
         case 1:
         
           lcd_wcmd(0x80);   //一号阀自动
           lcd_wdat(0x31);   //1
           lcd_wdat(0x23);   //#
         
           lcd_wdat(0xd7);
           lcd_wdat(0xd4);   //自
           lcd_wdat(0xb6);
           lcd_wdat(0xaf);   //动
     
           lcd_wcmd(0x90);   //在第二行显示:是
           lcd_wdat(0xca);
           lcd_wdat(0xc7);     //是
           lcd_wdat(0x20);
           lcd_wdat(0x20);     //空格
     
           lcd_wcmd(0x88);   //在第三行显示:否
           lcd_wdat(0xb7);
           lcd_wdat(0xf1);    //否
           lcd_wdat(0x20);
           lcd_wdat(0x20);     //空格
           lcd_wcmd(0x0c);   //将光标关掉
           break;
         case 2:
           flag=1;
              lcd_wcmd(0x80);   //一号阀自动
           lcd_wdat(0x31);   //1
           lcd_wdat(0x23);   //#
           lcd_wdat(0xb7);   //阀
           lcd_wdat(0xa7);
           lcd_wdat(0x20);   //空格
           lcd_wdat(0x20);
        
           
           lcd_wcmd(0x90);
           lcd_wdat(0x20);   //空格
           lcd_wdat(0x20);
           lcd_wdat(0x20);
           lcd_wdat(0x20);
        
           lcd_wcmd(0x88);
           lcd_wdat(0xd7);
           lcd_wdat(0xd4);
           lcd_wdat(0xb6);
           lcd_wdat(0xaf);
           lcd_wcmd(0x0c);   //将光标关掉
           break;

            default:
              
           flag=0;
           key3n=0;
          // xianshi();
           lcd_wcmd(0x80);   //一号开阀
           lcd_wdat(0x31);    //1
           lcd_wdat(0x23);    //#
           lcd_wdat(0xbf);
           lcd_wdat(0xaa);    //开
           lcd_wcmd(0x90);      //一号阀停止
           lcd_wdat(0x31);      //1
           lcd_wdat(0x23);      //#
           lcd_wdat(0xcd);    //停
           lcd_wdat(0xa3);
           lcd_wcmd(0x88);     //一号关阀
           lcd_wdat(0x31);     //1
           lcd_wdat(0x23);     //#
         
           lcd_wdat(0xb9);     //关
           lcd_wdat(0xd8);
              lcd_wcmd(0x82);  
           lcd_wdat(0x20);
           lcd_wdat(0x20);   //空格
           lcd_wcmd(0x0c);   
          // break;
           }
            
        case 2:
       switch(key3n)
       {
        case 1:
          flag=0;
          flag1=1;
         // xianshi();
             lcd_wcmd(0x80);   //显示:手
          lcd_wdat(0xca);
          lcd_wdat(0xd6);    // 手
          lcd_wdat(0x20);
          lcd_wdat(0x20);
         
         
             break;
           default:
            
          flag1=0;
          key3n=0;
         // xianshi();
          lcd_wcmd(0x80);   //一号开阀
          lcd_wdat(0x31);    //1
          lcd_wdat(0x23);    //#
          lcd_wdat(0xbf);
          lcd_wdat(0xaa);    //开
             lcd_wcmd(0x82);  
          lcd_wdat(0x20);    //空格
          lcd_wdat(0x20);
          lcd_wcmd(0x0c);
         // break;
       }

相关帖子

沙发
yuanquan12345|  楼主 | 2011-3-11 09:05 | 只看该作者
现在的问题:Key1n=1时,直接就进入case2,了。当key3n=2时,又回到key1n的case1了。
弄了两天了。
请指点。
谢谢。

使用特权

评论回复
板凳
OpCode| | 2011-3-11 12:59 | 只看该作者
外围的CASE貌似没见到break;

使用特权

评论回复
地板
心静自然凉| | 2011-3-11 13:04 | 只看该作者
看的好累,你先把帖子内容简化一下,比如把一堆lcd_wdat(0x20); 用“程序内容”4个字来表示

使用特权

评论回复
5
wang_2003| | 2011-3-11 14:39 | 只看该作者
这个感觉太乱了,自己好好用流程图看看吧

使用特权

评论回复
6
yuanquan12345|  楼主 | 2011-3-11 14:47 | 只看该作者
谢谢大家。
问题已解决,外围没有break。
谢谢。

使用特权

评论回复
7
yuanquan12345|  楼主 | 2011-3-11 14:50 | 只看该作者
楼上提的建议,我会采纳,以后慢慢改正。
谢谢。

使用特权

评论回复
8
sdpz| | 2011-3-11 19:44 | 只看该作者
看着蛋疼

使用特权

评论回复
9
joyme| | 2011-3-12 11:43 | 只看该作者
书写不规范,自己检查也麻烦,没有break就会顺序执行下面的代码。写代码的时候,先不要写处理代码,先把switch...case...的架构写好就不会出这么弱的问题了

使用特权

评论回复
10
ddtx| | 2011-3-12 15:46 | 只看该作者
外围的SWITCH没有break啊
肯定会出现你说的情况的

使用特权

评论回复
11
ji_dan| | 2011-3-12 16:29 | 只看该作者
就是那个原因

使用特权

评论回复
12
abin0415| | 2011-3-12 18:25 | 只看该作者
可以用数组,这样就可以节省一些代码。

使用特权

评论回复
13
yuanquan12345|  楼主 | 2011-3-13 07:50 | 只看该作者
谢谢大家。
学习了。

使用特权

评论回复
14
nan_banqiu| | 2011-3-13 10:15 | 只看该作者
低级的错误难找啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1155

帖子

3

粉丝