C语言--switch循环

80 阅读2分钟

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; 
	} 
} 

输出结果 image.png 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("输入有误,没有这个日历");                                          
	}
} 

输出结果 image.png

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;
} 

输出结果 image.png