新人 想请问一个小问题,if语句,在执行延时的过程中,如果条件发生改变,是否会立即终止延时,还是会执行完成if内所有语句,之后再次做判断呢?
//这是一个单片机的高低电平的东东,代码是我随意写的,为了表达意思,因为只有电脑,没有单片机,也没法做验证,突然想做些东西,需要这样一个条件,希望大神给予解答,谢谢万分while(1){
int p1 = 0;
int i = 0; //定义条件变量
if(i == 0) //正常执行,条件满足
{ //if语句开始执行
p1 = 1; //(随意一个条件)
delay(100000); //假设延时执行到50000时,i=1;if条件不满足;
} //那么delay会继续执行么,p1会继续=1么?如果会,是执行完成所有条件后才会跳出if么?
} //主要就是增加一个delay,不知道是否会立刻跳出,使得p1=0,还是继续执行完毕.
如果if不能完成上述delay的执行,那for可以么?
尝试如下:
while(1){
int p1 = 0;
int i = 0;
for(;i < 1;)
{
p1 = 1;
delay(100000);
} //与上面程序同理,当delay运行过程中,i=1,delay是否会继续执行
}