面对多分支语句如果使用if语句会比较麻烦,例如如果我们要将天数转换为星期,使用if语句的话就得写出如下的代码
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d",&a);
if(a==1)
printf("星期一");
else if(a==2)
printf("星期二");
else if(a==3)
printf("星期二");
else if(a==4)
printf("星期三");
else if(a==4)
printf("星期四");
else if(a==5)
printf("星期五");
else if(a==6)
printf("星期六");
else
printf("星期天");
return 0;
}
看得出来,非常麻烦,所以我们得换一种语句这是我们就会使用switch语句(虽然我觉得目前好像也很麻烦)
switch语句语法形式
switch(整型常量)
{
语句项;
}
其中语句项是一些case语句,形式如下
case 整型常量表达式;
语句;
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d",&a);
switch(day)
{
case 1:
printf("星期一");
case 2:
printf("星期二");
case 3:
printf("星期三");
case 4:
printf("星期四");
case 5:
printf("星期五");
case 6:
printf("星期六");
case 7:
printf("星期天");
}
return 0;
}
当我们运行这段代码时,输入1~7的数字,便会发现结果与我们想要的不一样,例如我们输入四,运行后我们可以发现运行结果为星期四,星期五,星期六,星期天,原因就是因为当我们输入的值为四的时候,case4实际上就是入口,但此时并没有出口,所以会一直运行,此时我们便需要之前提及的转向语句之一的break
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d",&a);
switch(day)
{
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
case 4:
printf("星期四");
break;
case 5:
printf("星期五");
break;
case 6:
printf("星期六");
break;
case 7:
printf("星期天");
break;
}
return 0;
}
此时break就相当于出口,当我们输入四的时候,case4相当于入口,执行代码printf("星期四")后,从break离开,break语句实际上是把语句列表划分为不同分支部分。