从单片机基础到程序框架(全集 2019pdf版).pdf - 第204页
二进制:110 分析: 变量 a 为 3。a 初始 化为 0,进 入循环体内后 ,a 每次加 1,循 环加 3 次,因此从 0 变成 了 3。 变量 b 为 6。b 初始 化为 0,进 入循环体内后 ,b 每次加 2,循 环加 3 次,因此从 0 变成 了 6。 【48.6 如何在单片机上练习本章节 C 语言程序?】 直接复制前 面章节中第十 一节的模板程 序, 练习代码时只需要 更改 “ C 语言学习区 域” 的 代码就可 以了, 其…

/*---C 语言学习区域的开始。-----------------------------------------------*/
unsigned char a=0; //观察这个数最后的变化
unsigned char b=0; //观察这个数最后的变化
unsigned char i; //控制循环体的条件判断变量
void main() //主函数
{
i=3;
while(i) //i 不断减小,直到变为 0 时才跳出此循环体
{
a=a+1; //当 i 从 3 减少到 0 的时候,这条语句被循环执行了 3 次。
i=i-1; //循环的条件不断发生变化,不断减小
}
i=0;
while(i<3) //i 不断增大,当 i 大于或者等于 3 时才跳出此循环体
{
b=b+2; //当 i 从 0 增加到 3 的时候,这条语句被循环执行了 3 次。
i=i+1; //循环的条件不断发生变化,不断增加
}
View(a); //把第 1 个数 a 发送到电脑端的串口助手软件上观察。
View(b); //把第 2 个数 b 发送到电脑端的串口助手软件上观察。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
在电脑串口助手软件上观察到的程序执行现象如下:
开始...
第 1 个数
十进制:3
十六进制:3
二进制:11
第 2 个数
十进制:6
十六进制:6

二进制: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;
……