标题: while语句的困惑 求解 [打印本页]

作者: age20000    时间: 2012-5-19 22:38
标题: while语句的困惑 求解

------------------------------------------------*/
#include<reg51.h>    

sbit key1=P1^0;

sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;

main()
{
  bit Flag;
while(!Flag)

      {
      if(!key1)     {P2=0xFE;Flag=1;}
   else if(!key2){P2=0xFD;Flag=1;}
   else if(!key3){P2=0xFB;Flag=1;}
   else if(!key4){P2=0xF7;Flag=1;}
      }
 
while(Flag)

}

这是个4通道抢答器的程序    我发现如果不加最后那句while(Flag),则按键并没被锁定,按下key1,1号灯亮,接着按key2,又变成2号灯亮了,

按道理讲,当第一次按下key1后,Flag的状态不是变化了吗,应该不符合while的条件了啊,为什么还能继续执行里面的if else语句了?

本人初学,求各位大侠指点迷津

 






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1