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

上面举的例 子中,仅仅 列出了 f or 语句条件判 断的小于号 关系符“<” ,其 实,f or 语句条件判 断的关系 符跟 if 语句是一样 通用的,凡是 if 语句能用的 关系符都可 以用在 fo r 语句上,比如“> ”,“!=” ,“==” , “<=”,“> =”等等。如下 : for(i=0; i<=3;i++); / /小于等于的 情况。这种写 法是合法的。 for(i=0; i!=3;i+…

100%1 / 836
上述的 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 循环语句的条件判断。
上面举的例子中,仅仅列出了 for 语句条件判断的小于号关系符“<”,其实,for 语句条件判断的关系
符跟 if 语句是一样通用的,凡是 if 语句能用的关系符都可以用在 for 语句上,比如“>”,“!=”,“==”,
“<=”,“>=”等等。如下
for(i=0;i<=3;i++); //小于等于的情况。这种写法是合法的。
for(i=0;i!=3;i++); //不等于的情况。这种写法是合法的。
for(i=0;i==3;i++); //等于的情况。这种写法是合法的。
【49.8 例程练习和分析。
编写一个程序来熟悉一下 do while for 语句的使用。
程序代码如下:
/*---C 语言学习区域的开始。-----------------------------------------------*/
unsigned char a=0; //观察这个数最后的变化
unsigned char b=0; //观察这个数最后的变化
unsigned char c=0; //观察这个数最后的变化
unsigned char i; //控制循环体的条件判断变
void main() //主函数
{
i=3;
do
{
a=a+1; //每执行一次循环 a 就增加 1,此行代码被循环执行了 3
i=i-1; //i 不断变小
}while(i); //i 不断变小, i 变为 0 时才跳出此循环体
for(i=0;i<3;i++)
{
b=b+2; //此行代码被循环执行了 3
}
for(i=3;i>0;i--)
{
c=c+3; //此行代码被循环执行了 3
}
View(a); //把第 1 个数 a 发送到电脑端的串口助手软件上观察。
View(b); //把第 2 个数 b 发送到电脑端的串口助手软件上观察。
View(c); //把第 3 个数 c 发送到电脑端的串口助手软件上观察。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
在电脑串口助手软件上观察到的程序执行现象如下:
开始...
1 个数
十进制:3
十六进制:3
二进制:11
2 个数
十进制:6
十六进制:6
二进制:110
3 个数
十进制:9
十六进制:9
二进制:1001
分析:
变量 a 3。a 0 始,循环 1,一共 3 次,因此等于 3。
变量 b 6。b 0 始,循环 2,一共 3 次,因此等于 6。
变量 c 9。c 0 始,循环 3,一共 3 次,因此等于 9。
【49.9 如何在单片机上练习本章节 C 语言程序?】
直接复制前面章节中第十一节的模板程序,练习代码时只需要更改C 语言学习区域”代码就可以了,
其它部分的代码不要动。编译后,把程序下载进带串口 51 习板,通过电脑端的串口助手软件就可以观
察到不同的变量数值,详细方法请看第十一节内容。