C语言分支语句switch语句的运用

1.1switch语法

 1. switch(expression)

 2. case value1: statement;

 3. case value2: statement;

 4. default : statement;

switch的case分支根据表达式expression的值不同来执行相对应的case分支,如果没有与表达式中的值对应的case分支就执行default分支。

switch的表达式必须是整型表达式,case的value也必须是整型的常量表达式。

1.2 break

例子:

C
int main()
{
	int num = 1;
	switch (num)
	{
	case 1: 
		printf("hello c\n");
	case 2:
		printf("hello c++\n");
	default :
		printf("hello java\n");
	}
	return 0;
}

我们知道switch语句中的表达式num为1那么根据switch的语法我们可以知道打印的是hello c,那么我们运行下看看是否和我们的猜想一样。

为什么打印是三个全打印呢?

这是因为switch语句在运行时不会运行完对应的case语句后结束它还会继续运行下去直到switch语句执行完毕,那有什么方法解决这个问题吗?

C语言中有个叫break的关键字,break:跳出当前循环,那我们再试试

例子:

C
int main()
{
	int num = 1;
	switch (num)
	{
	case 1:
		printf("hello c\n");
		break;
	case 2:
		printf("hello c++\n");
		break;
	default:
		printf("hello java\n");
		
	}
	return 0;
}

我们再看看运行的结果是否和我们第一次的想法一致

我们可以看到是和我们的想法一致,所以break在switch语句中是十分重要的也是因为break使switch语句中才能实现真正的分支。

每个case在执行完后加上break才能跳出switch,而break并不是每个case语句后都要加上这个要根据情况而定。

比如我们要求打印星期1到5为工作日星期6和7为休息日用switch来写

例子:

C
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日");
		break;
	case 6:
	case 7:
		printf("休息日");
		break;
	default :
		printf("输入错误");
	}
	return 0;
}

1.3 case和default的顺序的问题

我们知道在switch中表达式若是没有对应的case value就会执行default语句那他们的顺序有要求吗?

在C语言中并没有规定case和default的顺序问题所以他们的顺序可以任意,只要满足了你的代码需求就可以,不过为了代码的可读性我们通常把default放到最后面

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值