C语言分支与循环(二)——switch语句

前言

通过上一篇文章了解完条件分支语句中的if语句相关知识后,其实除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。接下来我将介绍switch语句,废话不多说,我们直接开始吧!

switch语句的基本形式

switch (表达式)
{
	case 情况1:
		语句块1;
	case 情况2:
		语句块2;
	...
	case 情况n:
		语句块n;
	default
		默认情况语句块;
}

例如

#include<stdio.h>
int main()
{
	int season = 0;
	scanf("%d", &season);
	switch (season)
	{
		case 1:
			printf("spring\n");
			break;
		case 2:
			printf("summer\n");
			break;
		case 3:
			printf("autumn\n");
			break;
		case 4:
			printf("winter\n");
			break;
		default:
			printf("input error!\n");
			break;
		
	}
	return 0;
}

例子中season为要进行判断的条件,case语句检验season值的不同情况。每个case或default语句后都有一个break关键字,break语句用于跳出switch结构,不再执行switch下面的代码。假设season的值为1,那么执行case为1的情况,如果season的值不是case中列出的情况,则执行default中的语句。

多路开关模式的switch语句

switch (表达式)
{
	case 1:
		语句1
		break;
	case 2:
	case 3:
		语句2
		break;
	...
	default:
		默认语句
		break;
}

举个栗子:

输⼊1-5,输出的是“⼯作⽇”, 输⼊6-7,输出“休息⽇”。

#include<stdio.h>
int main()
{
	int day = 0;
	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;
	}

	return 0;
}

 

 if语句和switch语句的对比

1.语法的比较
if...else语句中、if是配合else关键字进行使用的,而switch是配合case使用的;if语句先对条件进行判断,而switch语句后进行判断。
2.效率的比较
if...else结构对开始少量的检验判断速度比较快,但是随着检验的增长会逐渐变慢,其中的默认情况是最慢的。使用if...else结构可以判断表达式,但是也不能减少选择深度的增加使得检验速度变慢的趋势,并且也不容易进行后续的添加扩充。
switch结构中,对其中每一项case检验的速度都是相同的,而default默认情况比其他情况都快。
当判定的情况占少数时,if...else结构比switch结构检验速度快。也就是说,如果分支在3个或者4个以下,用if...else结构比较好,否则选择switch结构。

注意事项:

1. case 和后边的数字之间必须有空格

2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。

3.在case语句表示的条件后有一个冒号“:”,在编写程序时不要忘记。

4.在使用switch语句时,如果没有一个case语句后面的值能匹配switch语句的条件,就执行 default语句后面的代码。其中任意两个case语句都不能使用相同的常量值;并且每一个switch结构只能有一个default语句,而且default可以省略。

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值