switch语句基本形式
所用关键字
关键字 | 作用 |
---|---|
switch | switch语句的入口,与case进行匹配 |
break | 跳出switch语句 |
case | 与switch中的表达式进行匹配,若匹配成功则进入该分支 |
default | 输入case中不包含的情况 |
代码形式
swtich(expression){ //switch是一种选择语句
case 情况1
语句1;
break;//是否有break视情况而定
case 情况2
语句2;
case 情况3
语句3
...
default:
语句;
}
特别注意
- switch后括号内的表达式为整型表达式,即int类型或char类型都可以,但是不能是实数,如float型,double型等
- case后面必须加一个空格才能生效
- default后的语句可以是空语句,但是必须加上分号
- 若case 情况 后没有break,则继续执行下一个case
- 注意,switch语句原则上可以与if-else语句互换
- case语句和default语句没有顺序要求,但一般将default放在最后
- case和default后面是冒号
经典应用
输⼊⼀个1~7的数字,打印对应的星期⼏
例如:
输⼊:1 输出:星期⼀
输⼊:2 输出:星期⼆
输⼊:3 输出:星期三
输⼊:4 输出:星期四
输⼊:5 输出:星期五
输⼊:6 输出:星期六
输⼊:7 输出:星期天
//注意,此处每个case后都有break
#include<stdio.h>
int main()
{
int day;
scanf("%d",&day);
switch(day){
case 1:
printf("星期一\n");
break;
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:
;
}
return 0;
}
如果将题意变为: 输⼊1-5,输出的是“⼯作⽇”; 输⼊6-7,输出“休息⽇”
则代码实现为:
#include<stdio.h>
int main()
{
int day;
scanf("%d",&day);
switch(day){
case 1:
case 2:
case 3: //注意此处case连用(没有break)表示————
case 4: //若switch()中为3,则向下执行语句一直到case 5,输出 工作日,然后跳出循环
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
;
}
return 0;
}