C语言中虽然没有限制if的使用次数,但是当进行多个简单条件判断时用if的话就会显得啰嗦,而且else容易出现不匹配,因此对于这种情况我们可以使用switch case。
#include <stdio.h>
int main(){
int a;
printf("Input integer number:");
scanf("%d",&a);
if(a==1){
printf("Monday\n");
}else if(a==2){
printf("Tuesday\n");
}else if(a==3){
printf("Wednesday\n");
}else if(a==4){
printf("Thursday\n");
}else if(a==5){
printf("Friday\n");
}else if(a==6){
printf("Saturday\n");
}else if(a==7){
printf("Sunday\n");
}else{
printf("error\n");
}
return 0;
}
对于这种情况我们完全可以使用switch来操作
#include <stdio.h>
int main(){
int a;
printf("Input integer number:");
scanf("%d",&a);
switch(a){
case 1: printf("Monday\n"); break;
case 2: printf("Tuesday\n"); break;
case 3: printf("Wednesday\n"); break;
case 4: printf("Thursday\n"); break;
case 5: printf("Friday\n"); break;
case 6: printf("Saturday\n"); break;
case 7: printf("Sunday\n"); break;
default:printf("error\n"); break;
}
return 0;
}
switch的结构如下:
switch(表达式){
case 整型数值1: 语句 1;
case 整型数值2: 语句 2;
......
case 整型数值n: 语句 n;
default: 语句 n+1;
}
首先运行括号里表达式,将运行的表达式与case中的整形数值做判断,从第一个 case 开始,比较“整型数值1”和 m,如果它们相等,就执行冒号后面的所有语句,也就是从“语句1”一直执行到“语句n+1”,而不管后面的 case 是否匹配成功。
如果想只运行当前条件的语句,则需要在语句最后引入“break”做中断。
最后面的default相当于if语句中的else,当前面的case中无匹配项则执行default后的语句,因为这是最后一句,因此可以不用加break(我建议加),而且default也不是必须的,具体情况具体分,但是我建议加上这一句。