大家看看这个if。。。else....语句该这么解

2020-02-05 09:31发布

if(RI)
        {        ES=0;
                RI = 0;
                if(len < 2)
                {
                        receive[len] = SBUF;
                        len++;
                }
        }
        if(len == 1)
        {
            if(receive[0]>0x07)
                    flag = 1;
        }
        else
          ES=1;
    }  
我的原意是如果len不等于1那么就让 ES=1;但是感觉这样执行的话如果len=1了,进入了第一个if语句。里面的 if 语句不成立的话,岂不是后面也不会执行else语句。不知道这样解对不对
各位给个高见,我现在有点疑惑
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
lxjiiing
1楼-- · 2020-02-05 23:39
 精彩回答 2  元偷偷看……
panda1130
2楼-- · 2020-02-06 00:41
多了一个括号啊,楼主再检查一下吧。这样的代码编译不过的。

lhcyy
3楼-- · 2020-02-06 01:19
panda1130 发表于 2012-5-4 10:17
多了一个括号啊,楼主再检查一下吧。这样的代码编译不过的。

我这里讨论的不是整段程序对不对,而是讨论那个if....else语句改怎么解释,
adcr
4楼-- · 2020-02-06 07:05
改成下面这样的格式就能理解了

if(RI)
{
        ES=0;
        RI = 0;
        if(len < 2)
                {
                        receive[len] = SBUF;
                len++;
                }
}
if(len == 1)
{
        if(receive[0]>0x07)
        flag = 1;
}
else
{
        ES=1;
}
leaderpig
5楼-- · 2020-02-06 07:16
  1. if(RI)
  2.         {        ES=0;
  3.                 RI = 0;
  4.                 if(len < 2)
  5.                 {
  6.                         receive[len] = SBUF;
  7.                         len++;
  8.                 }
  9.         }
  10.         if(len == 1)
  11.         {
  12.             if(receive[0]>0x07)
  13.                     flag = 1;
  14.         }
  15.         else
  16.           ES=1;
  17.     }  
复制代码
liuyonguo
6楼-- · 2020-02-06 11:19
 精彩回答 2  元偷偷看……

一周热门 更多>