大家看看这个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条回答
HeP028
1楼-- · 2020-02-05 11:41
理解正确,
lryxr2507
2楼-- · 2020-02-05 12:10
 精彩回答 2  元偷偷看……
linpin1368
3楼-- · 2020-02-05 17:54
没明白你的意思哦~
xiaoyigechaos
4楼-- · 2020-02-05 19:03
楼主似乎是对的,else匹配的if是倒数第二个,if和else只执行一个。我理解的应该没错,看二楼的就更清楚了
zjk
5楼-- · 2020-02-05 19:23
else匹配的是离他最近的那个IF,他们组成的If else语句跟上面的没关系
chinabn
6楼-- · 2020-02-05 20:29
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;
} //????????????????????????

一周热门 更多>