default,break的用法,在switch 中

时间:2025-03-22 08:53:45

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。