高级会员
主题
帖子
积分3595
阅读权限30
注册时间2012-12-31
最后登录1970-1-1
在线时间 小时
|
本帖最后由 huchuan987 于 2014-9-12 00:07 编辑
for(P3_0==0;)
这个FOR语句这里用的有点怪!
FOR语句的格式为:for(表达式1;表达式2;表达式3)执行语句
如:for(i=0;i<=100;i++){一大堆执行语句或只有一个;号的空指令}
FOR的执行过程为:
(1)先求解表达式1 。一般为设置变量的初值,如i=0;
(2)求解表达式2,若其值为真(值为非0),则执行{一大堆执行语句或只有一个;号的空指令}这堆东西,然后执行下面第(3)步。
若为假(值为0),则结束循环,转到第(5)步
(3)求解表达式3,
(4)转回上面的第(2)步骤继续执行。
(5)循环结束,执行FOR语句下面的一个语句。
这个FOR中的三个表达式均可以被省略。但两个分号不能省。
如可以写成:
(1)for(;i<=100;i++)//没初值设置,使用时要注意,如果初值发生不确定,程序就会飞了。
(2)for(i=0;;i++)//这个是没有条件判断,使用时要注意在执行语句里加入退出循环的条件判断,否则程序就会死循环。
(3) for(;i<=100;)//这个是没有初值和变量自增减变化。
(4)for(;;)//这个是省略全部的表达式,相当于while(1),就是无限循环。
所以你的原程序for(P3_0==0;),少了一个分号,我不知道应该把它放哪好了。
我现在给你两程序形式,你自己慢慢试。
(1)for(P3_0==0;;)这个我有点拿不准,只是因为它也能够通过编译罢了
因为P3_0==0是一个条件测试指令,它不是个赋值指令,把它放在表达式1有点感觉怪怪的。
mabiao_a.rar
(1.15 KB, 下载次数: 668)
(2)for(;P3_0==0;)这个的意思是当P3.0为0时,就执行FOR语句内的;空指令。个人感觉有点靠谱。感觉原作者应该是用来检测按键是否被释放。
mabiao_b.rar
(1.15 KB, 下载次数: 706)
|
|