switch中的case可以多条件吗_我的C语⾔学习笔记
(七)switch-case结构
6.0.0 switch-case结构
6.1.0 什么是switch-case结构
switch-case结构被称为选择结构。
6.2.0 switch-case的语法结构
语法:
switch (表达式)
{
case 值1:
执⾏代码;
break;
case 值2:
执⾏代码;
break;
case 值3:
执⾏代码;
break;
default:
执⾏代码;
break;
}
注意:switch后的表达式没有说必须是⼀个条件表达式。
6.3.0 执⾏步骤
先计算switch后⾯的表达式的结果;
从上到下的将这个结果和每⼀个case后⾯的值进⾏相等⽐较判断;
如果有⼀个相等,那么就执⾏其中的代码,执⾏完毕之后,就结束整个switch结构;
如果不想等,那就再判断下⼀个case的值;
如果所有的case的值和表达式的结果都不相等,就执⾏default中的代码。
6.4.0 ⼀些例⼦
语法例⼦:
int num = 10;
switch (num + num)
{
case 10:
printf(“AAAn”);
break;
case 20:
printf(“BBBn);
break;
case 30:
printf(“CCCn);
break;
default:
printf(“overn”);
break;
}
实际例⼦:
请⽤户输⼊⼀个星期数,输出对应的英⽂星期名称。1-7,否则显⽰“你是⽕星来的吗?”int weekDay = 0;
printf(“请输⼊1-7之间的⼀个数,表⽰星期⼏:”);
scanf(“%d”,&weekDay);
switch (weekDay)
{
case 1:
printf(“Mondayn”);
break;
case 2:
printf(“Tuesdayn”);
break;
case 3:
print(“Wednesdayn”);
break;
.
.
.
default:
printf(“你是⽕星来的吗?n”;
break;
}
6.5.0 注意事项
switch后⾯的括号⾥可以写⼀个表达式、变量、常量;
case穿透
每⼀个case块后⾯的break在语法上是可以不写的。
break的意思代表⽴即结束整个switch-case结构。
如果没有case块中没有写break,会穿透到下⼀个case块执⾏其中的代码,直到遇到有break的case块结束。如果没有break,则⼀直执⾏到所有case块结束。
所以在写代码时,⼀般情况下要注意不要漏掉break。
但是也有例外:例如⽤户输⼊⼀个⽉份,然后对应输出这个⽉份所属的季节。
int month = 0;
printf(“Please insert a month:”);
scanf(“%d”,&month);
switch (month)
{
case 1:
case 2:
case 3:
printf(“It’s Spring!n”);
break;
case 4:
switch的用法c语言
case 5:
case 6:
printf(“It’s Summer!n”);
break;
以下类似并省略……
所以利⽤case穿透可以简写代码,利⽤的是多个case块的处理逻辑是⼀样的情况。
switch后⾯的表达式的结果除了⼩数以外其他都是可以的。是⼩数就报错。
case块可以加⼤括号,这样写没有任何影响。但是⼀般情况下不写⼤括号。
⼀个case块⾥可以写任意⾏代码,只要符合代码逻辑。但是要注意,如果要在case块中声明变量,则必须将这个case块内的代码⽤⼤括号括起来。
case块可以有任意个,并且default可以省略掉,如果省略就没有默认执⾏代码了。
6.6.0 与if结构的关系和区别
能够使⽤switch-case结构写出来的代码⼀定可以⽤if结构写出来,但是反之则不⾏。
switch-case结构只能做等值判断,不能直接做范围判断。并且case后⾯的数据不能有变量。但是if结构可以都可以做到。
使⽤建议:
如果是做等值判断,建议使⽤switch-case结构;如果是范围判断建议使⽤if结构。
美丽⼈⽣⼯作室b eautylife.pub
C语⾔学习笔记的⽹址:(持续更新)
C语⾔学习 - BeautyLife Studio b eautylife.pub
感谢提供我个⼈⽹站服务器空间的优⽹主机:
优⽹主机 - 安全稳定、简单易⽤!uwebcloud
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论