0
点赞
收藏
分享

微信扫一扫

【011】选择结构switch-case多分支

认真的老去 2022-06-15 阅读 138

遇到多分支选择的时候可以使用if-else嵌套来完成,但是当分支比较多的情况吗,嵌套的if语句也会响应的增多,程序就会变得冗长,程序的可读性也就会因此降低。

针对多分支结构,C语言提供了switch-case语句。

switch-case语句的基本结构:

switch(表达式){            //表达式的值必须为整数类型(包括字符型)
case 常量1:语句1;
case 常量2:语句2;
case 常量3:语句3;
......
default: 语句4;
}

在执行switch语句时,先计算表达式的值,依次和case后面的常量比较,如果值相同的话就转去执行那个case后面的语句,并且一直执行到花括号结束。如果没有值相同,就转去执行default后面的语句。

如果需要表达式的值和case常量的值相同的话,只执行该case常量语句,我们需要在对应的case语句后面加上​​break;​​,使其跳出switch语句。

switch(表达式){            //表达式的值必须为整数类型(包括字符型)
case 常量1:语句1;break;
case 常量2:语句2;break;
case 常量3:语句3;break;
......
default: 语句4;
}


/*
* 输入一个等级,输出对应的分数段
* A:80~90
* B:60~79
* C:0~59
*/
#include<stdio.h>

int main()
{
char ch;
scanf("%c",&ch);
switch(ch){
case 'A' :
printf("80~100");
break;
case 'B':
printf("60~79");
break;
case 'C':
printf("0~59");
break;
default:
printf("输入不合法");
}
return 0;
}

【011】选择结构switch-case多分支_C语言笔记


break可以跳出switch结构,当都去掉break语句后,执行后:

【011】选择结构switch-case多分支_C语言笔记_02



/*
* 输入一个2022年的日期,输出该天是2022年的第几天
*/
#include<stdio.h>

int main()
{
int month,day; //定义两个整型变量,month月,day天
int n = 0; //是2022的第n天
scanf("%d %d",&month,&day);

switch (month) {
case 12:
n+=30;
case 11:
n+=31;
case 10:
n+=30;
case 9:
n+=31;
case 8:
n+=31;
case 7:
n+=30;
case 6:
n+=31;
case 5:
n+=30;
case 4:
n+=31;
case 3:
n+=28;
case 2:
n+=31;
case 1:
n+=day;
}
printf("%d",n);
return 0;
}

大概思路:如果输入1月份的day天,直接输出day天。如果输入是2月份的day天,就需要用day加上一月份天数。



举报

相关推荐

0 条评论