?首先我们来看一下switch的定义
switch(整型表达式)
{
? ? ? ? case??整型常量表达式:
? ? ? ? ? ? ? ? ???语句;
}
?我们在书写时要注意一下,无论是在switch还是case,后面跟着的都一定要是整型,而且case这一行写完时,最后要用"?:"而非" ;"
另外,当我们写完一条case语句时,要在后面加上break;不然系统就会把这条case以及它后面的case语句全部输出,就像这样
#include <stdio.h>
int main() {
int i = 0;
scanf("%d", &i);
switch (i) {
case 1:
printf("大学\n");
case 2:
printf("大专\n");
case 3:
printf("高中\n");
case 4:
printf("职高\n");
case 5:
printf("中专\n");
case 6:
printf("初中\n");
case 7:
printf("小学\n");
}
}
最终输出结果就是这样,而我们加上break之后输入的是哪个case出来的也就是那个case?
#include <stdio.h>
int main() {
int i = 0;
scanf("%d", &i);
switch (i) {
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;
}
}
那么我们想要输入1,2时显示的是成年人,输入3到7时显示的是未成年人应该怎么办呢?
因为case有一个不加break就会向下执行的特性,所以我们可以这样
#include <stdio.h>
int main() {
int i = 0;
scanf("%d", &i);
switch (i) {
case 1:
case 2:
printf("成年人\n");
break;
case 3:
case 4:
case 5:
case 6:
case 7:
printf("未成年人\n");
break;
}
}
那么我们这里只有7个case,如果输入的是比7大的数字时,我们就需要default这条语句了
default:默认其他选项,当case里面的值都不匹配时,就会跳入default
#include <stdio.h>
int main() {
int i = 0;
scanf("%d", &i);
switch (i) {
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;
}
}
这个时候我们输入8,系统就会跳到default里面,输入default里面的语句。