从单片机基础到程序框架(全集 2019pdf版).pdf - 第205页
第四十九节: 循环语句 do while 和 for。 【49.1 do while 语句的常见格式。 】 格式如下: do { 语句 1; 语句 2; …… 语句 N; } while(条件 ); 上述代码 , 单片 机从上往下执 行语句, 先从 do 那里无条件进来 , 从 “语句 1” 开始往下执行, 一直执行 到 “语句 N” , 才开始判断 w hile(条件) 的条件是否 为真, 如果为真继 续返回到 d o 的入口处, 继…

二进制:110
分析:
变量 a 为 3。a 初始化为 0,进入循环体内后,a 每次加 1,循环加 3 次,因此从 0 变成了 3。
变量 b 为 6。b 初始化为 0,进入循环体内后,b 每次加 2,循环加 3 次,因此从 0 变成了 6。
【48.6 如何在单片机上练习本章节 C 语言程序?】
直接复制前面章节中第十一节的模板程序,练习代码时只需要更改“C 语言学习区域”的代码就可以了,
其它部分的代码不要动。编译后,把程序下载进带串口的 51 学习板,通过电脑端的串口助手软件就可以观
察到不同的变量数值,详细方法请看第十一节内容。

第四十九节: 循环语句 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--; //执行一次循环体之后此变量自减发生变化
}