标题:新人 想请问一个小问题,if语句,在执行延时的过程中,如果条件发生改变, ...
只看楼主
q1413784496
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-11-22
结帖率:0
已结贴  问题点数:20 回复次数:4 
新人 想请问一个小问题,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是否会继续执行
}






搜索更多相关主题的帖子: 单片机 
2016-11-22 04:52
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
看这代码,执行delay()时 i 是怎样改变的?
2016-11-22 07:12
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:10 
条件判断语句只在进入条件块的时候作判断。进入块之后即使发生变化不再符合条件,仍然会执行完。
2016-11-22 09:07
q1413784496
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-11-22
得分:0 
回复 2楼 吹水佬
delya()执行到一半时,if内条件变为不满足,     这时会立刻跳出执行,     还是只会进入时进行判断,依然会将语句执行完毕
if和for是一样的结果么
2016-11-22 20:28
q1413784496
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-11-22
得分:0 
回复 3楼 yangfrancis
谢谢大神

2016-11-22 20:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-471441-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.484711 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved