4.4 for语句

C语言中的for 语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以
用于循环次数不确定而只给出循环结束条件的情况。
for 语句的一般形式为:
for(表达式1;表达式2;表达式3) 语句
它的执行过程是:
(1) 先求解表达式1
(2) 求解表达式2,其值为真,则执行for 语句中指定的内嵌语句(循环体),然后执行
第(3)步,如果为假,则结束循环。
(3) 求解表达式3
(4) 转回上面的第(2)步继续执行。
for 语句典型的应用是这样一种形式:
for(循环变量初值;循环条件;循环变量增值) 语句
例如上述例子中的延时程序有这样的程序行:“for(j=0;j<125;j++){;} ”,执行这行程序
时,首先执行j=0,然后判断j 是否小于125,如果小于125 则去执行循环体(这里循环体
没有做任何工作),然后执行j++,执行完后再去判断j 是否小于125……如此不断循环,直
到条件不满足(j>=125)为止。
如果用 while 语句来改写,应该这么写
j=0;
while(j<125)
{ j++; }
可见,用for 语句更简单、方便。
如果变量初值在 for 语句前面赋值,则for 语句中的表达式1 应省略,但其后的分号不
能省略。上述程序中有:“for(;DelayTime>0;DelayTime--){…}”的写法,省略掉了表达式1,
因为这里的变量DelayTime 是由参数传入的一个值,不能在这个式子里赋初值。
表达式 2 也可以省略,但是同样不能省略其后的分号,如果省略该式,将不判断循环条
件,循环无终止地进行下去,也就是认为表达式始终为真。
表达式 3 也可以省略,但此时编程者应该另外设法保证循环能正常结束。
表达式 1、2 和3 都可以省略,即形成如for(;;)的形式,它的作用相当于是while(1),即
构一个无限循环的过程。
循环可以嵌套,如上述延时程序中就是两个for 语句嵌套使用构成二重循环,C 语言中
的三种循环语句可以相互嵌套。