switch语句

102 阅读1分钟

case 的值要与表达式的值完全一样,才是匹配成功!

如果匹配成功,就执行对应代码,直到遇到break为止

案例1

#include <stdio.h>
int main(){
	printf("switch");
	//考试分数
	int score = 60;
//case 的值要与表达式的值完全一样,才是匹配成功!
//if(score >= 60 && score <= 70)
	switch(score){
		case 60:
			printf("额外做一张试卷");
			break;
		case 70:
			printf("额外做半张试卷");
			break; 
		case 90:
			printf("出去玩");
			break;
		default:
			printf("你考的分数不在处理范围");
			break; 
	} 	
}

image.png

案例2

//写程序,汇报我的工作日常 
	//提示用户输入,1~7的数字,分别获取我周一~周二的工作
	int day = 1;
	printf("输入1~7的数字,获取我的工作日历:");
	scanf("%d", &day);
	
	//printf("%d", day); 
	switch(day){
		case 1:
			printf("上6节课\n");
			break;
		case 2:
			printf("上6节课\n");
			break; 
		case 3:
			printf("上6节课\n");
			break; 
		case 4:
			printf("上6节课\n");
			break;
		case 5:
			printf("上6节课\n");
			break;
		case 6:
			printf("休息一天\n");
			break;
		case 7:
			printf("出去玩\n");
			break;	
		default:
			printf("输入有误,没有这个日历");
			break; 
	}  	

image.png

case 穿透

有多个case值匹配成功之后的逻辑是一样的,则可以把它们写在一起。

int day = 1;
	printf("输入1~7的数字,获取我的工作日历:");
	scanf("%d", &day);
        
	switch(day){
		case 1:
		case 2:
		case 3:
			printf("上6节课\n");
			break; 
		case 4:
			printf("上6节课\n");
			break;
		case 5:
			printf("上6节课\n");
			break;
		case 6:
			printf("休息一天\n");
			break;
		case 7:
			printf("出去玩\n");
			break;	
		default:
			printf("输入有误,没有这个日历");
			break; 
	}  	

image.png