条件语句:if else与switch case 区别及如何选择
首先,C语言中是没有限制if else可以处理分支的数量的,但一旦分支过多的话,会使得整个程序十分的冗杂,并且处理起来十分的不方便,更糟糕的是容易出现if 与else配对错误的现象。
eg:
#include <stdio.h>
int main(){
int a;
scanf("%d",&a);
if(a==1){
printf("星期一\n");
}else if(a==2){
printf("星期二\n");
}else if(a==3){
printf("星期三\n");
}else if(a==4){
printf("星期四\n");
}else if(a==5){
printf("星期五\n");
}else if(a==6){
printf("星期六\n");
}else if(a==7){
printf("星期天\n");
}else {
printf("不存在\n");
}
return 0;
}
输入格式:5
输出:星期五
输入格式:8
输出:不存在
以上程序可以看出当分支过多时,else if不是非常好用,并且容易出错,因此可以换成switch case
#include <stdio.h>
int main(){
int a;
scanf("%d",&a);
switch(a){
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;
default:printf("不存在\n"); break;
}
return 0;
}
输入格式:5
输出:星期五
输入格式:8
输出:不存在
两者对比可以发现 如果分支数量很多时,switch case 较else if 更加方便,简洁。