| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5310 人关注过本帖
标题:新人 想请问一个小问题,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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册: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
快速回复:新人 想请问一个小问题,if语句,在执行延时的过程中,如果条件发生改 ...
数据加载中...
 
   



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

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