if的下位同义符:switch

24 阅读2分钟
#include<stdio.h>
#include <stdlib.h>
int main(){
	printf("switch");//打印一遍switch看是否能使用
	
	int score = 60;
	
	switch(score){
		case 60:
			printf("额外做一张试卷");
			break;
		case 70:
			printf("额外做半张试卷");
			break;
		case 90:
			printf("出去玩");
			break;
		default:
			printf("你考的分数不在处理范围");
			break;
           } 
    }    

运行结果如下:

image.png

switch和if同样为选择语句,但与if不同的是switch的范围更加的小必须精确到某一个值,而if可以精确到值与值之间的一整个区间 例如上代码中,若将int score的值改为61-69,71-89.....等case值以外的数值,就会直接运行default

演示如下:

image.png

image.png

break的作用是跳出。

还有另一种情况:如果将break无效化或者消除,则在匹配成功的情况下,执行对应的代码,直到遇到break为止。

演示如下:

image.png

运用switch制作周期工作日历表:

#include<stdio.h>
#include <stdlib.h>
int main(){
	int day;
	
	printf("输入1-7的数字,获取我的工作日历:");
	scanf("%d", &day); 
	
	switch (day){
		case 1:
			printf("满课,上六节");
			break;
		case 2:
			printf("满课,上六节,还有晚自习");
			break;	
		case 3: 
			printf("满课,上六节");
			break;
		case 4: 
			printf("少课,上三节");
			break;
		case 5: 
			printf("满课,上六节");
			break;
		case 6: 
			printf("睡到大中午,下午2-5点学习,晚上游戏时间");
			break;
		case 7: 
			printf("睡到大中午,下午2-5点复习和写作业,晚上游戏时间");
			break;
	}
}

演示如下:

image.png

image.png

image.png

case的后传

遇到相同的case后值可以运用case的后传,例如周一和周三和周五

代码如下:

#include<stdio.h>
#include <stdlib.h>
int main(){
	int day;
	
	printf("输入1-7的数字,获取我的工作日历:");
	scanf("%d", &day); 
	
	switch (day){
		case 1:	
		case 3:
		case 5:   //因为case1,3,5内容一样,所以可以用后传来省略1和3之中的代码
		 	printf("满课,上六节");
			break;
		case 2:
			printf("满课,上六节,还有晚自习");
			break;	
	
			
		case 4: 
			printf("少课,上三节");
			break;
	 
			
		case 6: 
			printf("睡到大中午,下午2-5点学习,晚上游戏时间");
			break;
		case 7: 
			printf("睡到大中午,下午2-5点复习和写作业,晚上游戏时间");
			break;
	}
}

演示如下:

image.png

image.png