作业帮 > 综合 > 作业

谁能 c语言中 这个语句的意思;为什么可以这样写,我一直没想明白!for(i

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/05 06:46:11
谁能 c语言中 这个语句的意思;为什么可以这样写,我一直没想明白!for(i
for(i=t;i>0;i--)
for(j=110;j>0;j--);
以你的第一个for循环为例
for (i = t; i > 0; i--)
执行一个for循环,一般会有一个循环变量,有循环终止与否的判断
1) i =t,在进入for循环前,执行一次,对循环变量进行初始化,初始值为5
2)i>0,循环进行的条件,就是只要循环变量大于0,就一直执行
3)执行完循环体之后,就来这里,执行一次i--,然后回到2)
所以这个for循环的执行顺序是
1) i = t;
2) 判断 i>0是否成立,成立则进入循环体,否则退出for循环
3)执行循环体
4)执行i--
5) goto 2)
再问: 但是为什么 把它变成 for(i=t;i>0;i--) {j=110;j>0;j--} 就出错呢?
再答: 你确定是这样子的? for(i=t;i>0;i--) {j=110;j>0;j--} 这样当然错了,C/C++语句要以分号结束,最后一个j--后面无分号。
再问: 哦 确实是这样啊!可是它们两个的意思还是一样的吗? 下载到单片机之后 ,LED灯 闪的速度变快了!
再答: 1) for(i=t;i>0;i--) for(j=110;j>0;j--); 2) for(i=t;i>0;i--) {j=110;j>0;j--;} 从你的目的来看,是实现延迟。1)和2)基本一样吧。因为1)除了这3个语句外,还有循环的处理,可能会多出几个汇编指令,理论上,延迟的时间要比2)大一些。