从单片机基础到程序框架(全集 2019pdf版).pdf - 第214页
十进制:4 十六进制:4 二进制:100 第 4 个数 十进制:3 十六进制:3 二进制:11 分析: 变量 a 为 6。 变量 b 为 3。 变量 c 为 4。 变量 d 为 3。 【50.6 如何在单片机上练习本章节 C 语言程序?】 直接复制前 面章节中第十 一节的模板程 序, 练习代码时只需要 更改 “ C 语言学习区 域” 的 代码就可 以了, 其它 部分的 代码 不要动 。编 译后 ,把程 序下 载进带 串口 的 51 学 …

if(i>=3) //当 i 等于 3 的时候,开始“拦截”continue 后面的代码。
{
continue; //提前结束本次循环,准备进入下一次循环
}
b=b+1; //被执行了 3 次,分别是第 0,1,2 次
}
//i<6 的条件判断是在进入循环体之前判断,而 i 的自加 1 是在执行完一次循环体之后才自加的。
for(i=0;i<6;i++)
{
c=c+1; //被执行了 4 次,分别是第 0,1,2,3 次
if(i>=3) //当 i 等于 3 的时候,直接跳出当前循环体,结束此循环体的“生命周期”。
{
break; //马上跳出当前循环体
}
d=d+1; //被执行了 3 次,分别是第 0,1,2 次
}
View(a); //把第 1 个数 a 发送到电脑端的串口助手软件上观察。
View(b); //把第 2 个数 b 发送到电脑端的串口助手软件上观察。
View(c); //把第 3 个数 c 发送到电脑端的串口助手软件上观察。
View(d); //把第 4 个数 d 发送到电脑端的串口助手软件上观察。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
在电脑串口助手软件上观察到的程序执行现象如下:
开始...
第 1 个数
十进制:6
十六进制:6
二进制:110
第 2 个数
十进制:3
十六进制:3
二进制:11
第 3 个数

十进制:4
十六进制:4
二进制:100
第 4 个数
十进制:3
十六进制:3
二进制:11
分析:
变量 a 为 6。
变量 b 为 3。
变量 c 为 4。
变量 d 为 3。
【50.6 如何在单片机上练习本章节 C 语言程序?】
直接复制前面章节中第十一节的模板程序,练习代码时只需要更改“C 语言学习区域”的代码就可以了,
其它部分的代码不要动。编译后,把程序下载进带串口的 51 学习板,通过电脑端的串口助手软件就可以观
察到不同的变量数值,详细方法请看第十一节内容。

第五十一节: for 和 while 的循环嵌套。
【51.1 循环的嵌套。】
大循环的内部又包含了小循环,称为循环嵌套。生活中,循环嵌套的现象很常见,一年 12 个月,假设
每个月都是 30 天(仅仅假设而已),1 月份 30 天,2 月份 30 天......11 月份 30 天,12 月份 30,这里的年
就是大循环,年内部的月就是小循环。一年 12 个月,大循环就是 12 次。一个月 30 天,小循环就是 30 次。
用 for 语句来表达,大意如下:
for(m=1;m<=12;m++) //大循环。一年 12 个月。这里的 m 看作月,代表一年 12 个月的大循环。
{
for(d=1;d<=30;d++) //内嵌小循环。一月 30 天。这里的 d 看作天,代表一个月 30 天的小循环。
{
}
}
【51.2 循环嵌套的执行顺序。】
例子如下:
for(i=0;i<2;i++) //大循环
{
语句 1;
for(k=0;k<3;k++) //内嵌的小循环
{
语句 2;
}
语句 3;
}
上述例子中,带 i 的 for 称为大循环,带 k 的 for 称为小循环,单片机从大循环入口进来,由上往下执
行,执行第 1 次大循环,先执行 1 次“语句 1”,接着进入小循环,小循环要连续循环执行 3 次“语句 2”才
跳出小循环,之后执行 1 次“语句 3”,然后再返回到大循环入口判断 i 条件是否满足,此时条件满足,继续
执行第 2 次大循环,1 次“语句 1”,3 次“语句 2”,1 次“语句 3”,第 2 次循环结束后又返回到大循环入口
判断 i 条件,此时 i 已经等于 2 不再小于 2 了,因此条件不满足,结束整个循环嵌套。上述执行的语句顺序
如下:
语句 1; //第 1 次大循环开始
语句 2;
语句 2;
语句 2;
语句 3;
语句 1; //第 2 次大循环开始
语句 2;
语句 2;
语句 2;
语句 3;