switch 中,default,break的用法
switch格式如下:
switch(整形表达式)
{
语句项;
}
语句项:
case 整形常量表达式:
语句
switch语句是一种分支语句,常用语多分支情况。
例如:输入数字(1——7),输出星期几。
#define _CRT_SECURE_NO_WARNINGS 1
//switch 中,default,break的用法
#include<>
int main()
{
int day = 0;
printf("请输入一个数字:\n");
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:
printf("输入不规范\n");
break;
}
return 0;
}
而当需求改变的时候,需要输出1—5为工作日,6—7为休息日
//输出1—5为工作日,6—7为休息日
#include<>
int main()
{
int day = 0;
printf("请输入一个数字:\n");
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:
printf("输入不规范\n");
break;
}
return 0;
}
还可以做如下简化:
#include<>
int main()
{
int day = 0;
printf("请输入一个数字:\n");
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("输入不规范\n");
break;
}
return 0;
}
需要注意的知识点1:
1. 在switch语句中,我们没办法实现分支,需要搭配break使用才能实现真正的分支。
2. break语句实际上的效果是把语句列表划分为不同的部分。
3. 在每一个case语句之后加上一条break语句,避免遗忘。
需要注意的知识点2:
default子句:
如果表达式的值与所有的case标签不匹配怎么办?其实也就是所有的语句被跳过,程序也不会终止,不会报错。
但是不想忽略任何一种情况的话,可以加一条default子句,把下面的标签。
default :
写在任何一个case标签可以出现的位置。
当switch表达式的值不匹配所有case标签的值时,这个default子句后面的语句就会执行。
所以,每一个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任意位置,而语句流会更像贯穿一个case标签的default子句。
编程的好习惯
在每一个switch语句中都放一条default子句是一个好习惯,甚至后面再加一个break。