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

/*---C 语言学习区 域的开始。 ----- ----------- ---------- ----------- ---------- */ unsigned c har k; //switc h 的入口变量 unsigned c har a; //观察此 变量的变化 来理解 switc h 的执行顺序 void main( ) //主函数 { a=0; k=2; //入口变量等 于 2 switch(k ) { case 0: …

100%1 / 836
if(0==变量)
{
语句 0;
}
else if(1==变量)
{
语句 1;
}
else if(2==变量)
{
语句 2;
}
else //相当于 switch 中的 default
{
语句 3;
}
【52.6 switch 中内嵌 switch。
if 语句可以内 if 语句,while 语句也可以内嵌 while 语句,switch 语句当然也可以内 switch。
如:
switch(a)
{
case 1:
switch(b) //内嵌 switch
{
case 1:
Break;
case 2:
Break;
}
Break;
case 2:
Break;
}
分析:上述这种 switch 内嵌 switch 语句也是合法的,而且在实际项目中也很常用,大家目前先有个
概的了解即可,暂时不深入讲解。
【52.7 例程练习和分析。
现在编写一 switch 的练习程序。
程序代码如下:
/*---C 语言学习区域的开始。-----------------------------------------------*/
unsigned char k; //switch 的入口变量
unsigned char a; //观察此变量的变化来理解 switch 的执行顺序
void main() //主函数
{
a=0;
k=2; //入口变量等 2
switch(k)
{
case 0: //入口 0
a++;
break; //跳出 switch
case 1: //入口 1
a++;
case 2: //入口 2,上述 k 等于 2 所以从这里进来
a++;
case 3: //入口 3
a++;
case 4: //入口 4
a++;
break; //跳出 switch
case 5: //入口 5
a++;
break; //跳出 switch
default: //当前面没有遇到匹配的 case 入口时,就从 default 入口进来
a++;
break; //跳出 switch
} //最后一个 switch 的花括号也是跳出 switch
View(a); //把第 1 个数 a 发送到电脑端的串口助手软件上观察。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
在电脑串口助手软件上观察到的程序执行现象如下:
开始...
1 个数
十进制:3
十六进制:3
二进制:11
分析:
变量 a 3。单片机从 case 2 口进来,因为 case 2 case 3 没有 break 句,直到遇到 case 4
break 语句才结束 switch 程序体因此整个过程遇到 3 “a++”语句,因此变量 a 的“自加一”执行
3 次后从 0 变成 3
【52.8 如何在单片机上练习本章节 C 语言程序?】
直接复制前面章节中第十一节的模板程序,练习代码时只需要更改C 语言学习区域”代码就可以了,
其它部分的代码不要动。编译后,把程序下载进带串口 51 习板,通过电脑端的串口助手软件就可以观
察到不同的变量数值,详细方法请看第十一节内容。