default,break的用法,在switch 中

本文详细介绍了C语言中switch语句的使用,包括default子句和break关键字的作用。强调了break用于划分分支的重要性,以及default子句在处理未匹配case时的必要性。建议在每个switch语句中包含default子句作为良好编程习惯。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

switch 中,default,break的用法

switch格式如下:

switch(整形表达式)
{
语句项;
}

语句项:

case 整形常量表达式:
语句

switch语句是一种分支语句,常用语多分支情况。
例如:输入数字(1——7),输出星期几。

#define _CRT_SECURE_NO_WARNINGS 1
//switch 中,default,break的用法

#include<stdio.h>
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<stdio.h>
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<stdio.h>
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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无赖H4

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值