switch语句也是一种分支语句。常常用于多分支的情况。
比如
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
那我没写成 if…else if …else if 的形式太复杂,那我们就得有不一样的语法形式。 这就是switch 语句。
switch(整型表达式)
{
语句项;
};
语句项是什么?
//是一些case语句;
//如下:
case 整型常量表达式
语句;
在switch语句中的break
在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支。
比如:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int day = 0;
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("星期六");
break;
case 7:
printf("星期日");
break;
}
return 0;
system("pause");
}
有时候我们的需求变了:
- 输入1-5输出的是“weekday”
- 输入6-7输出的是“weekend”
所以我们的代码就应该这样实现了:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int day = 0;
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday");
break;
case 6:
case 7:
printf("weekend");
break;
}
return 0;
system("pause");
}
break语句的实际效果是把语句列表划分为不同的部分
编程好习惯
在最后一个 case 语句的后面加上一条 break语句。 (之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加(break语句)。
default字句
如果表达的值域所有的case标签的值都不匹配怎么办?那就进入default。即case里的所有值都不匹配的话进入default。
练习:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;//3
case 2:
n++;//2
case 3:
switch (n)
{
//switch允许嵌套使用
case 1:
n++;
case 2:
m++;//4
n++;//3
break;
}
case 4:
m++//5;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
system("pause");
return 0;
}