离线下载
PDF版 ePub版

单片机中文网 · 更新于 2018-11-28 11:00:43

4.4 C 语言 for 循环语句

for 语句是我们今后编程的一个常用的语句,这个语句必须得学会其用法,它不仅仅可以用来做延时,更重要的是用来做一些循环运算。for 语句的一般形式如下:

    for( 表达式1; 表达式2; 表达式3 ){
        // 需要执行的语句;
    }

其执行过程是:表达式1首先执行且只执行一次;然后执行表达式2,通常都是一个用于判定条件的表达式,如果表达式2条件成立,就执行(需要执行的语句);然后再执行表达式3;再判断表达式2,执行(需要执行的语句);再执行表达式3.....一直到表达式2不成立时,跳出循环继续执行循环后面的语句。举个例子:

for( i=0; i<2; i++ ){
    j++;
}

这里有一个符号++,我们刚刚讲过了。假如 j 最开始初值是0,首先执行表达式1的 i=0,然后判断 i 小于2这个条件成立,就执行一次 j++,j 的值就是1了,然后经过表达式3后,i的值也变成1了,再判断条件2,还是符合,j 再加一次,j 变成2了,再经过表达式3后 i也变成2了,再判断条件2,发现2<2这个条件不成立了,所以就不会再执行 j++这个语句了。所以执行完毕后,j 的值就是2。

for 语句除了这种标准用法,还有几种特殊用法,比如我们上节课的闪烁小灯对 for 语句的用法 for(i=0; i<30000; i++) ;我们没有加(需要执行的语句),没有加的话,就是什么都不操作。但是什么都不操作的话,我们这个 for 语句循环判断了30000次,程序执行是会用掉时间的,所以就起到了延时的作用。比如我们把30000改成20000,会发现灯的闪烁速度加快了,因为我们延时时间短了,当然,我们改成40000后会发现,闪烁慢了。但是有一点特别注意,C 语言的延时时间是不能通过程序看出来的,也不会成比例,比如我们这个 for 循环里边的表达式2使用30000时延时是3秒的话,那么改成40000的时候,可能不是4秒,那如何看实际延时时间呢,一会我再教大家。

还有一种写法 for( ; ; ),这样写后,这个 for 循环就变成了死循环了,就不停的执行(需要执行的语句),和我们前边讲的 while(1)的意思是一样的了。那 while 这个语法是如何用的呢?