条件运算符和switch...case语句学习笔记

条件运算符
经常用到一种简单的if语句,即if(表达式)max=a; else max=b;特点是语句1和语句2都是赋值语句,且都给同一个变量赋值。
此时可用条件运算符来处理:
max=(表达式)? a:b; 条件运算符是唯一的一个三目运算符,需要三个操作数。条件运算符可以构成条件表达式,一般形式如下:
表达式1?表达式2:表达式3
执行过程是:先计算表达式1的值,若非0,就计算表达式2的值并作为条件表达式的值。否则就计算表达式3的值并作为条件表达式的值。
程序代码讲解
在这里插入图片描述
在这里插入图片描述
main函数定义三个变量a,b,max,且给变量a变量b赋初值,通过一个条件表达式(a>b)?a:b;给max赋初值。先计算表达式1(a>b),3>2为真,再计算表达式2的值3,再将3作为条件表达式(a>b)?a:b的值,再将条件表达式的值3赋值给max。将max的值赋值给P1(特殊功能寄存器,控制单片机P1端口的电平输出)。
P1=max=a=3,换成二进制0000.0011,所以D4.D5灭,D6.D7亮。
编译→烧录→运行得到预期结果。

switch…case语句
switch…case语句是多分支选择语句,它的一般形式为:
switch(表达式)
{case常量表达式1:语句1break;
case常量表达式2:语句2break;
.
.
.
case常量表达式n:语句n break;
default :语句n+1

1.表达式(switch后面的)可以是任意类型。2.常量表达式的类型要与表达式的类型相同。3.各常量表达式的值必须互不相同。4.各个case的出现次序可任意。5.switch语句的执行过程:先计算表达式的值,当它与某个常量表达式的值相等时,就执行case后面的语句,然后执行break语句,退出switch语句,继续执行switch外的语句;若表达式的值不与任何的常量表达式的值相等,就执行default后面的语句,然后退出switch语句,继续执行switch外的语句。6.若没有break语句,则当与表达式相等的常量表达式后面的语句执行之后,会继续执行后面case中的语句,以及default后的语句。7.这里的break语句是中断语句,它中断switch语句的执行。
实验代码讲解
在这里插入图片描述
定义了8个位变量,分别对应4个按键,4个发光二极管。然后main函数定义了一个无符号字符型swi初始化为0,然后进入到while循环,如果S3按下了给swi赋值1,S4按下swi为2,S5按下swi为3,S6按下swi为4,如果任何一个按键没有被按下则swi为0。然后进入switch语句,swi和case后面的常量进行比较,如果相等就执行case后面的语句,然后执行break退出switch语句,如果与任何一个case后面的常量都不相等则执行default后面的语句,然后退出switch语句。
当S3按键按下,swi=1,与case1,的常量1相等,然后执行D4=0;D5=1;D6=1;D7=1;执行结果就是D4 点亮,D5,D6,D7都是熄灭的。 其它的以此类推。
编译-烧录可得到预期结果。

发布了25 篇原创文章 · 获赞 8 · 访问量 1977

猜你喜欢

转载自blog.csdn.net/hltx666/article/details/104251952
今日推荐