switch相比if语句的好处
面对多种情况的发生,if语句需要多个if else语句连接,代码较为复杂。但用switch语句就会方便许多。
例如下面的例题:
输⼊⼀个1~7的数字,打印对应的星期⼏
此时用switch语句就是以下的结果
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch(day)
{
case 1:
printf("星期⼀\n");
break;
case 2:
printf("星期⼆\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
}
return 0; }
整体的观感和代码的理解会比if语句好许多
当然在switch语句中,同一个代码块可以对应不同的case
例如
输⼊1-5,输出的是“⼯作⽇,
输⼊6-7,输出“休息⽇。
此时就不要在每个caes下都输入printf
将1~5化作一个整体
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("⼯作⽇\n");
break;
case 6:
case 7:
printf("休息⽇\n");
break;
}
return 0; }
代码变得更加简洁和易懂
如果出现case没有出现的数值,就用default解决
依照上题的例子 如果我输入的数字不是1~7,而是输入8或者其他,由于没有这种情况的caes,系统不会响应任何值,此时我们就可以用default来统一的回应
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("⼯作⽇\n");
break;
case 6:
case 7:
printf("休息⽇\n");
break;
default:
printf(”输入错误,请输入1~7的数字\n");
break;
}
return 0; }
这样使用者就可以注意到自己的错误并改正