switch语句 是一种多分支选择结构,常用于根据表达式的值执行不同的代码块。它可以简化多重 if-else 的逻辑,提升代码的可读性。 break的作用:跳出 switch case default的执行流程 如果匹配成功,就执行对应的代码,直到遇到break为止
例题1
#include<stdio.h>
int main(){
//printf("switch");
//考试分数
int score = 90;
//case的值要与表达式的值完全一样 ,才是匹配成功
//if(score>=60 && score <=70)
switch(score){
case 60:
printf("额外做一张试卷");
break;
case 70:
printf("额外做半张试卷");
break;
case 90:
printf("出去玩");
break;
default:
printf("你考的分数不在处理范围");
break;
}
}
例题2
#include<stdio.h>
int main(){
//写程序,汇报我的工作日常
//提示用户输入1-7的数字,分别获取我的周一到周日的工作
int day = 1;
printf("输入1-7的数字,获取我的工作日历");
scanf("%d",&day);
switch(day){
case 1:
printf("上6节课");
break;
case 2:
printf("上6节课");
break;
case 3:
printf("上6节课");
break;
case 4:
printf("上3节课");
break;
case 5:
printf("上6节课");
break;
case 6:
printf("睡觉");
break;
case 7:
printf("写作业");
break;
default:
printf("输入有误,没有这个日历");
break;
}
}
注意
- case后的值必须是常量表达式,且不能重复。
- 如果没有break,程序会继续执行后续的所有分支(称为“贯穿”)。
- default分支是可选的,用于处理所有未匹配的情况。
- 嵌套使用时需注意代码可读性
作业
#include<stdio.h>
int main(){
int mouth,year,days;
printf("请输入月份:");
scanf("%d",&mouth);
switch(mouth){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 2:
printf("请输入年份:");
scanf("%d",&year);
if((year%4==0&&year%100!=0)||(year%400!=0)){
days=29;
}else{
days=28;
}
break;
default:
printf("输入有误,月份应该在1-12之间。\n");
break;
}
printf("%d月有%d天\n",mouth,days);
}