分支语句(选择结构)

初识c语言

分支语句(选择结构)

switch 语句

语法结构

switch(整形表达式)(注:只可以是整型,但可以为变量)
{
语句项
}

这里语句项是一些 case 语句 如下:

{
case 整型常量表达式 :(注:这里的整形常量表达式不可以被别的表达式替换,且一定是整型常量,例如 float double 都不可以!!!)

语句;
}
例句一段代码:


#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期一\n");
		
	case 2:
		printf("星期二\n");
		
	case 3:
		printf("星期三\n");
		
	case 4:
		printf("星期四\n");
		
	case 5:
		printf("星期五\n");
		
	case 6:
		printf("星期六\n");
	
	case 7:
		printf("星期天\n");
		
	}
	return 0;
}

但是,经过运行我们发现,在输入“1”时,下面几种 case 依然会被执行,所以这段代码是有问题的,我们做出如下调整,使其运行 case 1 时可以跳出循环,这里我们使用关键字 break :


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

这样便可以使其执行完目标代码时,直接跳出代码块,输出结果。因此我们得知,switch 语句要搭配 case break 使用
但是,如果我们的需求变了,例如 case 1 ~5表示的是工作日,case6
~7是休息日,我们便可以合并 case 1~5、case 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;
}

这样便可以省去 break 的过程,使代码看起来简洁明了
但是这里要注意:即使,最后一段代码不加 break 也可以成功运行代码,不过我们为了培养良好的编写习惯,最好按照格式,在末尾处按规定添加 break ,以便于其他人接着代码结束处,继续编写代码

此处还有个问题,按照代码所示,我们可输入的数字只有 1~7 ,但是,如果要是输入一个 8 怎么办呢?,我们如实输入数字 8 ,结果啥也得不到,没有显示任何东西,这无疑是一个漏洞。于是,我们又要提到一个关键字 default, 把default添加在代码下一行,意为默认情况,即没有输入的选项,输入错误。 代码如下:


#include<stdio.h>
int main()
{
	int day = 0;
	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-7以外的数字便会提示“输入错误”

此处的 default 语句可以放到代码块中的任意位置,不会影响代码的运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值