打印

为什么if的条件成立else内的条件成立两个程序同时执行

[复制链接]
8368|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuanquan12345|  楼主 | 2010-11-17 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
if(yue==12&&ri==31)     //明天新年
{
  Chinese_disp_1(0,0,xkongge);
  Chinese_disp_1(0,16,xkongge);
  Chinese_disp_1(0,32,xming);
  Chinese_disp_1(0,48,xtian);
  Chinese_disp_2(0,0,xxin1);
  Chinese_disp_2(0,16,xnian);
  Chinese_disp_2(0,32,xkongge);
  Chinese_disp_2(0,48,xkongge);
}
else
{
  if(shi>=6&&shi<=10)     //小子又偷懒了吧!
  {
   Chinese_disp_1(0,0,xxiao);
   Chinese_disp_1(0,16,xzi1);
   Chinese_disp_1(0,32,xyou1);
   Chinese_disp_1(0,48,xtou);
   Chinese_disp_2(0,0,xlan);
   Chinese_disp_2(0,16,xle);
   Chinese_disp_2(0,32,xba1);
   Chinese_disp_2(0,48,xgantanhao);
  }
  if(shi>10&&shi<=16)   
  {
   Chinese_disp_1(0,0,xkongge);     //记着加油奥!
   Chinese_disp_1(0,16,xji2);
   Chinese_disp_1(0,32,xzhe1);
   Chinese_disp_1(0,48,xjia1);
   Chinese_disp_2(0,0,xyou2);
   Chinese_disp_2(0,16,xao);
   Chinese_disp_2(0,32,xgantanhao);
   Chinese_disp_2(0,48,xkongge);
  }
  if(shi>16&&shi<=22)
  {
   Chinese_disp_1(0,0,xjian1);    //**+努力=成功
   Chinese_disp_1(0,16,xchi);
   Chinese_disp_1(0,32,xjiahao1);
   Chinese_disp_1(0,48,xnu1);
   Chinese_disp_2(0,0,xli2);
   Chinese_disp_2(0,16,xdenghao);
   Chinese_disp_2(0,32,xcheng);
   Chinese_disp_2(0,48,xgong);
  }
}

相关帖子

沙发
yuanquan12345|  楼主 | 2010-11-17 09:12 | 只看该作者
上面的程序,if内的条件成立,为什么跟else内得if一起执行,在12864上显示两行重叠的字。
请指教。
谢谢。

使用特权

评论回复
板凳
yuanquan12345|  楼主 | 2010-11-17 17:11 | 只看该作者
请指教。
谢谢。

使用特权

评论回复
地板
程序医人| | 2010-11-17 20:00 | 只看该作者
这里肯定没错,肯定其他地方有问题。

使用特权

评论回复
5
渊深海阔| | 2010-11-17 20:14 | 只看该作者
你写12864前有清屏吗?

使用特权

评论回复
6
areshan| | 2010-11-17 21:26 | 只看该作者
程序是没有错的了!其他地方弄错了!

使用特权

评论回复
7
yuanquan12345|  楼主 | 2010-11-18 08:18 | 只看该作者
看出点毛病来了,因前面并列了好多if语句,else只能与最近的if配对,所以出现错误。
我想出个办法试试行不。
就是else嵌套如:if()
                  {}
                         else
                           {
                               if()
                      {}
                                else
                                 {
                                   if()
                         {}
                                    else
                                         .
                                         .
                                         .
                                  }
                           }

使用特权

评论回复
8
smile_luo| | 2010-11-18 10:00 | 只看该作者
路过:lol

使用特权

评论回复
9
yuanquan12345|  楼主 | 2010-11-18 10:53 | 只看该作者
试了一下,不行,if,else嵌套了28次就编译不了了。
请指教。
谢谢。

使用特权

评论回复
10
zhangf1021| | 2010-11-18 14:32 | 只看该作者
…………居然能嵌套28次

使用特权

评论回复
11
crazyleen| | 2010-11-18 15:20 | 只看该作者
狂晕

使用特权

评论回复
12
yuanquan12345|  楼主 | 2010-11-18 17:13 | 只看该作者
还在想办法。

使用特权

评论回复
13
zhangf1021| | 2010-11-18 17:31 | 只看该作者
我觉得你要把整个思路重新整理下,哪有这么写代码的

使用特权

评论回复
14
zdhlixiang2006| | 2010-11-18 22:22 | 只看该作者
试试把else里面除了第一个if之外的判断,其他全部加上一个else,另外你的&&两边的判断条件都加上(),再试试

使用特权

评论回复
15
Push_Pull| | 2010-11-19 08:35 | 只看该作者
按照5楼的方法 LZ不妨试一下

使用特权

评论回复
16
huangqi412| | 2010-11-19 09:22 | 只看该作者
神啊,还有嵌套28次的。

使用特权

评论回复
17
yanyama| | 2010-11-19 09:41 | 只看该作者
28次  看来的理理思路了

使用特权

评论回复
18
yuanquan12345|  楼主 | 2010-11-19 17:18 | 只看该作者
将程序这样改了一下:/*******************************/
/*判断节日标志位*/
void jieriwei(void)
{
        if((yue==01&&ri==01)|(yue==01&&ri==28)|(yue==02&&ri==02)|(yue==02&&ri==8)|(yue==02&&ri==13)|
                (yue==02&&ri==14)|(yue==03&&ri==01)|(yue==03&&ri==03)|(yue==03&&ri==0x08)|(yue==03&&ri==12)|(yue==03&&ri==14))
                dd=1;
        if(        (yue==03&&ri==15)|(yue==03&&ri==17)|(yue==03&&ri==21)|(yue==03&&ri==22)|(yue==03&&ri==23)|(yue==03&&ri==24)|
                (yue==04&&ri==01)|(yue==03&&ri==24)|(yue==04&&ri==07)|(yue==04&&ri==8)|(yue==05&&ri==01)|(yue==05&&ri==04)|(yue==05&&ri==0x08))
                cc=1;
        if(        (yue==05&&ri==12)|(yue==05&&ri==05)|(yue==05&&ri==15)|(yue==05&&ri==31)|(yue==06&&ri==01)|(yue==06&&ri==05)|
                (yue==06&&ri==26)|(yue==06&&ri==06)|(yue==06&&ri==15)|(yue==07&&ri==01)|(yue==07&&ri==07)|(yue==07&&ri==11)|
                (yue==7&&ri==24)|(yue==8&&ri==01)|(yue==8&&ri==8)|(yue==8&&ri==15)|(yue==9&&ri==10)|(yue==9&&ri==18)|(yue==9&&ri==20))
                ee=1;
        if(        (yue==9&&ri==27)|(yue==10&&ri==01)|(yue==10&&ri==4)|(yue==10&&ri==24)|(yue==10&&ri==12)|(yue==10&&ri==13)|(yue==11&&ri==3)|
                (yue==11&&ri==10)|(yue==11&&ri==17)|(yue==12&&ri==1)|(yue==12&&ri==8)|(yue==12&&ri==24)|(yue==12&&ri==25)|(yue==12&&ri==31))
                ff=1;
        if(dd|cc|ee|ff)
        {
                jieri=1;
        }
        else
        {
                jieri=0;
        }
}

使用特权

评论回复
19
yuanquan12345|  楼主 | 2010-11-19 17:18 | 只看该作者
改了一下程序还不行,只运行if语句,不运行else,再停一下电,才显示else的内容,请教是什么原因。
谢谢。

使用特权

评论回复
20
救火车| | 2010-11-20 16:41 | 只看该作者
楼主请注意程序缩进

使用特权

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

本版积分规则

75

主题

1155

帖子

3

粉丝