分支与循环之—switch语句
前言
上篇文章介绍了分支与循环中的if
语句,那么我们开始介绍选择结构里的另一个语句------switch
语句。
什么是switch
语句
switch
语句是一种特殊的if......else......
结构,用于判断多个结果的条件。它把if......else......
结构中多重的else if
,改成了更方便,可读性更高的形式。
1.switch语句形式
代码如下(示例):
1 switch (exp) {
2 case val1: statement
3 case val2: statement
4 default: statement
5 }
上⾯代码中,根据表达式 exp
不同的值,执⾏相应的 case
分⽀。如果找不到对应的值,就执⾏ default
分⽀。
注意:
1、switch
后的 exp
必须是整型表达式
2、 case
后的值,必须是整形常量表达式
2.switch
语句中的break
代码如下(示例):
#include <stdio.h>
//输入数字来计算除以5的余数是多少,并打印出来
int main()
{
int i = 0;
printf("请输入要计算的数字:");
scanf("%d", &i);
switch (i % 5) {
case 0:
printf("整除了\n");
break;
case 1:
printf("余数是 1 \n");
break;
case 2:
printf("余数是 2 \n");
break;
case 3:
printf("余数是 3 \n");
break;
case 4:
printf("余数是 4 \n");
break;
}
return 0;
}
上面代码使用了break
,只有使用了break
,case
语句执行完之后才能跳出switch
语句,如果某一个case
后面没有使用break
那么代码将会一直执行下去直到遇到break
,或者执行到switch
语句结束。
这里注意:
case
与后面的数字之间必须有空格。
所以break
在switch
语句中非常重要,可以实现真正的分支效果。
当然也不是所有case
后面都要有break
,还是得根据实际情况来判断。
3.switch语句中的default
如果在switch
语句中,匹配不到合适的case
语句时是不是就不能输出了呢?当然不是,这里就要用到default
这个语句了。
示例:
1 switch (exp) {
2 case val1: statement
3 case val2: statement
4 default: statement
5 }
如果exp
的结果既不是val1
也不是val2
是,就会执行default
后面的代码。
例如:
//输入月份来判断春夏秋冬(3--5月春天)(6--8月夏天)(9--11月秋天)(12--2月冬天)
int main()
{
int month = 0;
printf("请输入月份:");
scanf("%d", &month);
switch (month) {
case 1:
case 2:
case 12:
printf("是冬天\n");
break;
case 3:
case 4:
case 5:
printf("是春天\n");
break;
case 6:
case 7:
case 8:
printf("是夏天\n");
break;
case 9:
case 10:
case 11:
printf("是秋天\n");
break;
default:
printf("输入错误\n");
}
return 0;
}
上面代码中如果我输入13,那么就会执行default
后面这个句子。
补充一点:
当我们多个case
要输出一样的句子时,可以按照我上面这样可以省略掉很多代码,也更容易读这个代码。
下期我们接着介绍循环结构!!