51单片机中的if-else if套嵌,下面的else if中的语句怎么执行不了啊

#include<reg52.h>#include<key_iden.h>unsignedinti,m;main(){m=0x40;//0100000P0=0xff;P2... #include <reg52.h>
#include <key_iden.h>
unsigned int i,m;
main()
{
m=0x40;//0100000
P0=0xff;
P2=0xff;
while(1)
{

if(Key_swept(0)) //判断按键1是否按下

if(P2==0xff&P0==0xff) //如果P0,P2 都不亮
{P2=0x7f;m=0x40; } //将0x7f赋给P2,m重置为0x40;
else if(P2!=0xff&P2!=0xfe) //如果P2有一个LED亮了而且不是最后一个LED亮的
{P2=~m; m>>=1;} //将m值赋予P2,然后向右移动

else if(P2==0xfe) //如果P2最后一位亮了
{P2=0xff;P0=0x7f;m=0x40;} //将P2灭掉,P0第一个LED点亮 然后右移
else if(P0!=0xff) //如果P0有一个亮了
{P0=~m;m>>=1;} //将m值赋予P0,然后右移
else if(P0==0xfe) //如果P0最后一个LED亮。
{P0=0xff;P2=0x7f;} //将P0灭掉,P2第一个LED点亮
//下面的语句无法执行,求高手指教。
else // if(Key_swept(1)) //判断按键2是否按下
{ if(P2!=0xff&P0==0xff) //如果P2有亮的LED,P0没有亮
{P2=0x00;} //将P2全部点亮
}
}

}
上面的问题简述如下:
if(Key_swept(0)) //判断按键1是否按下
{
if()
{}
else if()
{}
else if()
{}
}
else if()
{} //这句没有执行,为什么?
展开
 我来答
yjjeiqpl
2013-08-20 · TA获得超过281个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:160万
展开全部

我帮你排了一下,你的if-else很乱,不执行的语句包含在if(Key_swept(0))的一个分支中。如果不满足if(Key_swept(0))条件,自然也就跳出分支,不执行你想执行的语句了。想必你应该知道如何修改了吧。

JuggYe
2013-08-20 · 超过25用户采纳过TA的回答
知道答主
回答量:141
采纳率:100%
帮助的人:41.2万
展开全部
你的嵌套的第一个if后面的属于这个if的语句加上大括号!注意代码的可读性,美观性,也方便自己调试程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
思念天涯21
2013-08-20 · 超过10用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:13万
展开全部
每次写完一次if就要用else了,那你那样子写也不够规范,写得有些乱,建议看一下人家的规范化编程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式