计算机学习DAY 14-C-Switch语句

 Switch语句一般用于多分支情况,比如:

输入1,输出星期一

输入2,输出星期二

输入3,输出星期三

输入4,输出星期四

输入5,输出星期五

输入6,输出星期六

输入7,输出星期天

代码如下;

#define _CRT_SECURE_NO_WARNINGS 1

#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");
		break;
	case 4:
		printf("星期四\n");
		break;
	case 5:
		printf("星期五\n");

	case 6:
		printf("星期六\n");

	case 7:
		printf("星期天\n");

	}

	return 0;
}

首先是case,翻译过来是啥,情况,案例,对吧,所以说,每一个case就是一种情况,但是打印的时候会发现,给全打出来了,为啥嘞,我们在循环中,输入1,没有终止,所以在这之后的打印会全部读取,我们就想要打1得星期一,怎么办呢,代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

#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;
}

没错,break就能终止,即跳出循环,不在向下执行,但是,还有一个问题,那就是我们输入9的时候,会没有反应,但是我们至少有个反应对吧,给用户一个反应,那就是输入错误,OK,代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

#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;
}

OK,default,这个就相当于一个补充,在这些情况之中没有的时候,我们就给一个报错,这样呢,我们就能看到我们的正常程序了,那么,我想让这个程序的case1-case5都输出工作日而case6-case7都显示休息日呢?代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

#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;

	default:
		printf("输入错误\n");
		break;
	}

	return 0;
}

OK简单明了,略过了,下面再看一段代码:

#include <stdio.h>

int main()

{
	int n = 1;
	int m = 2;

	switch (n)
	{
	case 1:
		m++;
	case 2:
		n++;
	case 3:
		switch (n)
		{
		case 1:
			n++;
		case 2:
			m++;
			n++;
		default:
			break;
		}
	case 4:
		m++;
		break;
	default:
		break;
	}

	printf("m=%d,n=%d\n", m, n);
	return 0;
}

OK,这样嵌套起来,结果是多少呢,来看一下:

#include <stdio.h>

int main()

{
	int n = 1;
	int m = 2;

	switch (n)
	{
	case 1:
		m++;        //m=3
	case 2:
		n++;        //n=2
	case 3:
		switch (n)
		{
		case 1:
			n++;        //这一段就没有用了,因为压根进不来
		case 2:
			m++;        //m=4
			n++;        //n=3
		default:
			break;
		}
	case 4:
		m++;        //m=5
		break;
	default:
		break;
	}

	printf("m=%d,n=%d\n", m, n);    //最后是m=5,n=3
	return 0;
}

OK,结束!

相关代码我也会同步到我的码云上,欢迎交流与学习: C语言学习之路: C语言学习当中做的相关代码 - Gitee.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

0XC12EE

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

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

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

打赏作者

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

抵扣说明:

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

余额充值