从单片机基础到程序框架(全集 2019pdf版).pdf - 第191页
{ b=3; //3 代表 执行了“语句 3” } //第三种“ 多选一或者 什么都不选” if(x>6) { c=1; //1 代表执行了 “语句 1” } else if(7= =x) { c=2; //2 代表 执行了“语句 2” } else if(8= =x) { c=3; //3 代表 执行了“语句 3” } View(a); / /把第 1 个数 a 发送到电脑 端的串 口助手软件上 观察。 View(b); / /…

开始,往下逐个判断,然后到中间的 else if,只要发现一个条件满足,就执行该条件后面的大括号内的代
码,之后就马上结束整个组合判断语句,不再判断剩余的组合判断语句。但是,如果万一前面第一个 if 和
中间所有的 else if 的条件都不满足而为假,因为此时没有 else 语句,就意味着整个组合判断语句都没有
条件满足,因此就没有相关满足的代码被执行到。所以把这种情况称为“多选一或者什么都不选”。
【45.5 例程练习和分析。】
现在编写一个实验程序。
程序代码如下:
/*---C 语言学习区域的开始。-----------------------------------------------*/
//x 这个变量作为条件判断的变量
unsigned char x=5;
//a,b,c 这 3 个变量作为输出判断结果,0 代表什么语句都没执行,1 代表执行了语句 1,
//2 代表执行语句 2,3 代表执行语句 3。
unsigned char a=0;
unsigned char b=0;
unsigned char c=0;
void main() //主函数
{
//第一种“二选一”
if(x>6)
{
a=1; //1 代表执行了“语句 1”
}
else
{
a=2; //2 代表执行了“语句 2”
}
//第二种“多选一”
if(x>6)
{
b=1; //1 代表执行了“语句 1”
}
else if(7==x)
{
b=2; //2 代表执行了“语句 2”
}
else

{
b=3; //3 代表执行了“语句 3”
}
//第三种“多选一或者什么都不选”
if(x>6)
{
c=1; //1 代表执行了“语句 1”
}
else if(7==x)
{
c=2; //2 代表执行了“语句 2”
}
else if(8==x)
{
c=3; //3 代表执行了“语句 3”
}
View(a); //把第 1 个数 a 发送到电脑端的串口助手软件上观察。
View(b); //把第 2 个数 b 发送到电脑端的串口助手软件上观察。
View(c); //把第 3 个数 c 发送到电脑端的串口助手软件上观察。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
在电脑串口助手软件上观察到的程序执行现象如下:
开始...
第 1 个数
十进制:2
十六进制:2
二进制:10
第 2 个数
十进制:3
十六进制:3
二进制:11
第 3 个数
十进制:0

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