上一篇讲到在C语言中,可以通过if语句来实现选择结构,还可以通过switch来实现选择结构。switch 语句是⼀种特殊形式的 的 el if...else 结构,⽤于判断条件有多个结果的情况。它把多重else if 改成更易⽤、可读性更好的形式。
switch语句需要注意的两点:
1.switch后的expression必须是整形表达式;
2.case 后的值,必须是整形常量表达式。
#include<stdio.h>
int main()
{
int i = 0;
scanf("%d", &i);
if (i % 3 == 0)
printf("余数是0");
else if (i % 3 == 1)
printf("余数是1");
else
printf("余数是2");
return 0;
}
用switch语句可以写成如下:
#include<stdio.h>
int main()
{
int i = 0;
scanf("%d", &i);
switch (i % 3)
{
case 0:
printf("整除");
break;
case 1:
printf("余数是1");
break;
case 2:
printf("余数是2");
break;
}
return 0;
}
switch 语句也是分⽀效果的,只有在switch语句,如果某⼀个 case 语句的后边没有 语句中的代码,直到遇到 switch 语句中使⽤ break 才能在跳出 switch 语 break 语句,代码会继续往下执⾏,有可能执⾏其他 case 2 中的语句。 所以在 break 语句或者 switch 语句结束。break相当于switch语句中的开关。
一周内的星期几:
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thirsday");
break;
case 5:
printf("Friday");
break;
case 6:
printf("Saturday");
break;
case 7:
printf("Sunday");
break;
}
return 0;
}
switch语句中的default
在使⽤ break ,或者在哪⾥使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 配代码中的 switch 后的表达式中的值⽆法匹 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊ default ⼦句。switch 后边的 expression 的结果不是value1,也不是value2的时候,就会执行default子句。
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实 际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。