switch 语句
switch简单使用的场景 一般都是处于分支结构中,当题目中需要进行多次分支时,并且借助if 语句使用复杂时, 那么这种情况可以考虑一下switch语句
对于某一些问题switch语句相对来说还是比较简单,但是大多数情况下都会被if语句所替换.
Switch选择结构格式:
格式:
swtich(表达式) { // ()中的数据类型仅仅支持整数
case 常量1 :
要执行的语句;
break;
case 常量2 :
要执行的语句;
break;
case 常量3 :
要执行的语句;
break;
default:
要执行的语句;
break;
}
switch 语句中需要注意的问题:
1.switch 括号里面只能放整数
2.break语句不能遗漏 ,假如遗漏了,那么程序会继续往下开始执行,
3.不太能表达相对复杂的结构
4.switch里面也支持嵌套,但是一般不用
运行机理:
switch中的表达式结果会找对应的case匹配,如果匹配成功就找对应的的case执行
直到遇到break结束,如果case都不匹配,会直接执行default后面的语句
实例1:根据输入的数字判定星期几
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("请输入今天是星期几(1-7): \n");
int day = 0;
scanf("%d", &day);
switch (day) { //switch括号里面必须放整数
case 1:
printf("星期一!\n");
break;//break表示跳出当前的switch语句
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");
}
system("pause");
return 0;
}
运行结果:
实例2:根据输入的数字判定是周内还是周末
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("请输入今天是星期几(1-7): \n");
int day = 0;
scanf("%d", &day);
switch (day) { //switch括号里面必须放整数
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday!\n");
break;
case 6:
case 7:
printf("weekend!\n");
break;
default:
printf("您的输入有误!\n");
}
system("pause");
return 0;
}
运行结果:
实例3.输入学生的成绩,判定属于那个等级
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void judge(int grade) {
int grade1 = (int)(grade / 10);
switch (grade1) {
case 10:
printf("等级A\n");
break;
case 9:
printf("等级A\n");
break;
case 8:
printf("等级B\n");
break;
case 7:
printf("等级C\n");
break;
case 6:
printf("等级D\n");
break;
default:
printf("等级E\n");
}
}
int main() {
int grade = 0;
printf("请输入学生的成绩: \n");
scanf("%d", &grade);
judge(grade);
system("pause");
return 0;
}
运行结果: