switch是一种多分支选择结构,用于根据表达式的值执行不同的代码块。它常用于需要对某个变量进行多条件判断的场景。
1.语法结构
switch (表达式) {
case 常量表达式1:
语句块1;
break; // 可选,用于跳出switch
case 常量表达式2
语句块2;
break;
// ... 更多case分支
default: // 可选,当所有case都不匹配时执行
语句块n;
break;
}
2.注意事项
- case 标签的值必须唯一,且为常量表达式。
- 如果省略 break,程序会继续执行后续的 case 代码,直到遇到 break 或 switch 结束。
- default 是可选的,但建议添加以处理未匹配的情况。
- 嵌套 switch 语句时需注意代码的可读性。
3.考试分数
#include <stdio.h>
int main(){
printf("switch");
// 考试分数
int score = 80;
//case 的值要与 表达式的值完全一样, 才匹配成功!
//if(score>=60 && score<=70)
switch(score){
case 60:
printf("额外做1张试卷");
break;
case 70:
printf("额外做半张试卷");
break;
case 90:
printf("出去玩");
break;
default:
printf("你考的分数不在处理范围");
break;
}
}
输出结果
break的作用:跳出
switch case default的执行流程
1.按照代码的书写顺序,依次比较case 后面的值,如果匹配成功,就执行对应的代码,直到遇到break为止!
2.所有的case都不匹配,就执行default
4.每天干什么
#include <stdio.h>
int main(){
//汇报我的工作日常
int day = 1;
printf("输入1-7的数字,获取我的工作日历");
scanf("%d",&day);
switch(day){
case 1:
case 2:
case 3:
printf("上6节课");
break;
case 4:
printf("上4节课");
break;
case 5:
printf("上4节课");
break;
case 6:
printf("出去玩");
break;
case 7:
printf("睡觉");
break;
default:
printf("输入有误,没有这个日历");
}
}
输出结果
5.这个月有多少天
#include <stdio.h>
int main(){
int month, year;
printf("请输入月份:");
scanf("%d", &month);
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("这个月有31天\n");
break;
case 4:
case 6:
case 9:
case 11:
printf("这个月有30天\n");
break;
case 2:
printf("请输入年份:");
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
printf("这个月有29天\n");
} else {
printf("这个月有28天\n");
}
break;
default:
printf("没有你要的月份\n");
}
return 0;
}
输出结果