如果P1IN或BIT3两个变量有一个等于0X00,则进入while循环,
while的内部循环是:A2=(A2+1)%2 即变量A2+1后对2取模后的值赋值给变量A2
while循环的条件式是(P1IN&BIT3)==0x00 即P1IN或BIT3任何一个变量等于0x00即跳出while循环,继续执行后面的程序
另外,我怎么看着你贴出的代码有点别扭啊,语法有点问题,逻辑上也不循常理
如果是嵌入式的话,应该是这样理解
if((P1IN & BIT3)==0x00) //P1IN 的IO口第3位,检测出低电平,进入下面的程序
{
while((P1IN & BIT3)==0x00)//等待P1IN 的IO口第3位,变成高电平,跳出循环
;
A2=(A2+1)%2 //跳出循环后,A2口 0~1跳变
}
亲,这个不是通常C语言的语法,是嵌入式C的语法,你这个应该是单片机之类的程序吧。
这里的while循环的作用其实就是等待P1_3引脚的低电平结束的(注意,循环的执行条件是(P1IN & BIT3)==0x00,也就是只要P1_3引脚电平为低,循环就持续执行,当引脚电平为高时,跳出循环,执行A2=(A2+1)%2)。
while是循环,括号里边的是循环条件,如果条件成立就进入循环体进行循环,如果条件不成立就退出循环,执行while以后的代码