从单片机基础到程序框架(全集 2019pdf版).pdf - 第206页

语句 N; } 上述代码, 单片机从上 往下,在进 入循环体前 ,先把 变量 i 初始化赋值 0 (这行初始 化代码在整 个循环 期间 只被执 行 1 次) , 然后 判断 i 是否小于 3 这个 条件, 如果 此条件 为真 ,就 开始正 式进 入循环 体, 从“语 句 1”往 下执行 到“ 语句 N ” ,执 行完一 次循 环体后 , i 就自 加 1( 因为“ i++ ”语 句) ,此 时 i 从原来初 始化 的 0 变成了 1, …

100%1 / 836
第四十九节: 循环语句 do while for。
【49.1 do while 语句的常见格式。
格式如下:
do
{
语句 1;
语句 2;
……
语句 N;
} while(条件);
上述代码单片机从上往下执行语句,先从 do 那里无条件进来“语句 1”开始往下执行,一直执行
“语句 N”才开始判断 while(条件)的条件是否为真,如果为真继续返回到 do 的入口处,继续从语句 1”
开始往下执行,依次循环。大家留意到了吗,do while while 语句有什么差别?差别是,do while 是先
无条件进来执行一次循环(花括号里所有的程序代码)执行到循环体最底部才判 while(条件)的条件是
否为真来决定是否继续循环,先上车再买票。 while 语句是先判断条件是否为真再决定是否需要进入循环
体,先买票再上车。
【49.2 for 语句的简介。
for 句也是循环语句,任 for 语句能实现的功能都可以用 while 语句来实现同样的功能,for 语句
while 语句有什么差别呢?for 语句把变量初始化,变量的条件判断,变量在执行循环体后的步进变化这
三个常见要素集成在语句内部,以标准的格式书写出来。在很多场合下,for 在书写和表达方面比 while
句显得更加简洁和直观。
【49.3 for 语句的自加格式。
格式如下:
for(变量的初始化语句; 变量的条件判断;变量在执行一次循环体后自加的步进变化)
{
语句 1;
语句 2;
……
语句 N;
}
在把上述变成更具体的代码例程如下:
for(i=0; i<3;i++)
{
语句 1;
语句 2;
……
语句 N;
}
上述代码,单片机从上往下,在进入循环体前,先把变量 i 初始化赋值 0(这行初始化代码在整个循环
期间只被执 1 次)然后判断 i 是否小于 3 这个条件,如果此条件为真,就开始正式进入循环体,从“语
1”往下执行到“语句 N,执行完一次循环体后i 就自 1(因为“i++”语句),此 i 从原来初始化
0 变成了 1,接着再返回来到 for 语句的条件判断”i<3”那里判断 i 否继续满“小于 3”个条件
如果此条件为真就继续往下执行,否则就跳过循环体结束当前循环。上述 for 语句实现的功能如果用 while
语句来写,等效于以下代码:
i=0; //进入循环体之前先初始化给予初值
while(i<3)
{
语句 1;
语句 2;
……
语句 N;
i++; //执行一次循环体之后此变量自加发生变化
}
上述的 while 循环语句只执行了 3 次循环体。
【49.4 for 语句的自减格式。
刚才讲的 for(i=0; i<3;i++)这种格式,它的变量 i 是不断自加的。还有一种比较常见的格式 i 不断
自减的,它的格式如下:
for(i=3; i>0;i--)
{
语句 1;
语句 2;
……
语句 N;
}
上述自减的 for 语句功能如果用 while 语句来写,等效于以下代码:
i=3; //进入循环体之前先初始化给予初
while(i>0)
{
语句 1;
语句 2;
……
语句 N;
i--; //执行一次循环体之后此变量自减发生变化
}
上述的 while 循环语句只执行了 3 次循环体。
【49.5 for 省略花括号,没带分号。
前面讲的 if while 语句中,都提到了省略花括号的情况,for 语句也有这种写法,而且省略之后默
的有效范围都是一样的。请看例子如下
for(i=0; i<3;i++) //注意,这里没带分号。
语句 1;
语句 2;
……
语句 N;
分析:上述代码,跟 if 语句一样,此时循环体默认只包含“语句 1”,等效于:
for(i=0; i<3;i++) //注意,这里没带分号。
{
语句 1;
}
语句 2;
……
语句 N;
【49.6 for 省略花括号,带分号。
for(i=0; i<3;i++); //注意,这里带分号。
语句 1;
语句 2;
……
语句 N;
分析:注意,此时循环体默认不包含“语句 1”而是等效于:
for(i=0; i<3;i++)
{
; //空语句。
}
语句 1;
语句 2;
……
语句 N;
此时循环体内先循环执行三次空语句,然后才会结束 for 循环,接着才从“语句 1”开始往下执行。
【49.7 for 循环语句的条件判断。