switch语句

要点

switch是切换的意思,case是情况的意思
顾名思义switch case就是根据判断的值切换到某种情况的意思。

关键字注意点
switch只能输入整型
case1.整型 2.常量(常变量也不可以哦)
default除case外的所有情况(可有可无
break退出switch语句

用法

显示星期

int a=0;
scanf("%d",&a);
switch(a)
{
	case(1):
	printf("星期一");
	breakcase(2):
	printf("星期二");
	breakcase(3):
	printf("星期三");
	breakcase(4):
	printf("星期四");
	breakcase(5):
	printf("星期五");
	breakcase(6):
	printf("星期六");
	breakcase(7):
	printf("星期天");
	breakdefault:
	printf("输入错误");
	break;
	}

效果是这样子的
在这里插入图片描述

在这里插入图片描述
但是如果我想要输出的是工作日和假期呢?

case的理解&break的运用

也许很多人会这样修改:

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

结果也是没问题的
在这里插入图片描述
那么还能不能在优化了呢?这就涉及到了对case的理解。
当switch判断的值为2时,会跳过case(1)直接进入case(2)语句,如果没有break就会接着继续执行case(3),case(4)…一直到结束。

这时候机灵的朋友就能想到用这个可以化简刚才的代码。情况(case)不同,但是要执行的语句(打印工作日/假期)是一样的话,就可以去掉break让case合并
代码如下:

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

default的小细节

幽灵一般的default存在感很低,switch语句里可以没有他。但他也有独特的地方:1.补充语句 2.可以插队
1.补充语句就是将case外的情况囊括在内,并执行相应语句。
2.default放在switch语句内的任何地方都是可以的 (不要给我说switch()的括号里>o<)
例如:

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

	case(1):
	case(2):
	case(3):
	case(4):
	case(5):
	printf("工作日");
	breakdefault:
	printf("输入错误");
	break;
	
	
	case(6):
	case(7):
	printf("休息");
	break}

但是不可以这样:

int a=0;
scanf("%d",&a);
switch(a)
{

	case(1):
	case(2):

	default:
	printf("输入错误");
	break;
	
	case(3):
	case(4):
	case(5):
	printf("工作日");
	breakcase(6):
	case(7):
	printf("休息");
	break}

在这里插入图片描述
default不可以插入到连起来使用的case板块里哦

那么今天的分享就到这里了,下次见!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值