
void main()
{
unsigned int i;
while(1) {
for(i=0;i<=9;i++)
{
GPIO_DIG=DIG_CODE[i];
Delay10ms(50);
}
for(i=9;i>=0;i--)----错误就在这里 !!!
{
GPIO_DIG=DIG_CODE[i];
Delay10ms(50);
}
GPIO_DIG=0xff;
}
}
i--;
i--;
i--;
i--;
……
减到0,再减,等于什么?
有以下几种情况:
1、程序末尾不用M30和M02,用M20或M99,就可以实现无限循环。
2、在数控程序中间用GOTO跳转到第一行,也是无限循环。
3、用宏程序中的IF或WHILE,可以实现有限循环或无限循环。
4、用M98调用子程序实现循环。
5、G73实际上也是一个循环程序,是有限循环。
以上实例不是所有的数控系统都适应。
如果我的回答对您有帮助,请及时采纳为最佳答案,谢谢!
首先可以确认的是,这道题目的答案就是:4
程序运行结果:
接下来我们来分析下这道题目:
1、双重for循环 2 x 4(第一重执行两次,第二重执行小于4次,因为有if条件),
2、当 i = 0, j = 0是,if(j % 2)等价于 if(0), break不会被执行,此时a++执行一次,此时a == 1;
3、 当 i = 0, j = 1是,if(j % 2)等价于 if(1), break会被执行,第二个for循环中的a++不会执行,但是第一个for循环中a++会被执行一次,此时a == 2;
4、当 i = 1时, j依旧只会出现2,3步骤中情况,所以此时a++又被执行了两次,此时a==4,
5、当a==2时,第一个for循环条件不成立,退出,打印结果。
以上是我对这道题目的理解,如果对你有帮助,请采纳下, 谢谢。
EOF 其实是一个宏,在预编译期间会被编译器用 -1 代替
也就是说,当scanf 的返回值是 -1 时就会跳出循环。
scanf 的返回值是前 N 个成功度取得数据的数量,简单点说就是成功读了多少个数据,不过有区别,如果你第一个输入数据非法的话,就算你后面是合法输入,也会返回 0 。
EOF 是 end of file 的意思,也就是文件尾。如果是读文件的话,读到文件尾就会结束循环。
如果使用键盘输入的话, 输入 Ctrl + z 就可以结束循环(貌似是模拟文件结束符还是什么的,我也不太清楚),不过我所说的是在windows 环境下,如果是其他 *** 作系统就另当别论了。
印象中,以前在百度 scanf()=EOF 看到过一篇文章就是这么讲的
当一个或者多个指令(程序)重复多次(次数可知)时,可使用FOR指令。
FOR为有限次循环指令。
程序循环结构用于描述一段程序的重复循环执行。由FOR和NEXT指令构成程序的循环体。FOR指令标记循环的开始,NEXT指令为循环体的结束指令。
FOR指令为指令盒格式,主要参数有使能输入EN、当前值计数器INDX、循环次数初始值INIT和循环计数终值FINAL。
以上就是关于怎样让单片机程序循环全部的内容,包括:怎样让单片机程序循环、请问数控循环程序有哪几种先谢谢了、c程序for循环等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)