(五)流程控制switchcase

本文详细介绍了switchcase语句的使用方法,包括全配套和不全配套break的区别,以及不同类型的示例演示,还提供了经典成绩分类的代码案例。
摘要由CSDN通过智能技术生成


switch case

相对于ifelse的嵌套,switch case 有点像并列的感觉


用法

switch (一定要放整数类型,int 型变量、char 型变量,但不能放float 型变量、double 型变量、小数常量通通不行){
//这里面罗列(枚举)所要的事件(情况),格式case xx: break;
	case 0:
	break;
	case 1:
	break;
	default :break;//其他情况 全部归到default里面
}

全配套break

这里带break;每执行一个情况(事件),就跳出switch,注意细节;


示例

#include <stdio.h>

int main()
{
	int cmd ;
	
	printf("这是一个switch case的程序================\n");
	puts("请输入一个整型数字");
	scanf("%d",&cmd);
	switch(cmd){
		case 1:
			puts("满足了条件1的情况");
			break;
		case 2:
			puts("满足了条件2的情况");
			break;
		case 3:
			puts("满足了条件3的情况");
			break;
		default:
			puts("其他非1,2,3的情况");
			break;
	
	}
	
	return 0;
}

演示

在这里插入图片描述


不全配套break

不带break,会执行多个情况(事件)直到某个情况里面带有break才会跳出switch,一般满足多个情况,按照示例写法,注意细节;


不怎么常规的写法

#include <stdio.h>

int main()
{
	int cmd ;
	
	printf("这是一个switch case的程序================\n");
	puts("请输入一个整型数字");
	scanf("%d",&cmd);
	switch(cmd){
		case 1:
			puts("满足了条件1的情况");
			//break;
		case 2:
			puts("满足了条件2的情况");
			break;
		case 3:
			puts("满足了条件3的情况");
			break;
		default:
			puts("其他非1,2,3的情况");
			break;
	
	}
	
	return 0;
}

演示:
在这里插入图片描述


常规的写法

示例1
#include <stdio.h>

int main()
{
	int cmd ;
	
	printf("这是一个switch case的程序================\n");
	puts("请输入一个整型数字");
	scanf("%d",&cmd);
	switch(cmd){
		case 1:
		case 2:
			puts("满足了条件1的情况");
			puts("也满足了条件2的情况");
			break;
		case 3:
			puts("满足了条件3的情况");
			break;
		default:
			puts("其他非1,2,3的情况");
			break;
	
	}
	
	return 0;
}
演示1

在这里插入图片描述


示例2

char 类型作为情况索引,其它负数作为情况自行测试

#include <stdio.h>

int main()
{
	int cmd ;
	char cdata;
	
	printf("这是一个switch case的程序================\n");
	puts("请输入一个整型数字");
	scanf("%d",&cmd);
	switch(cmd){
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			puts("满足了条件1,2,3,4,5的情况");
			break;
		case 6:
			puts("满足了条件6的情况");
			break;
		default:
			puts("其他非1,2,3,4,5,6的情况");
			break;
	
	}
	
	getchar();//吸收scanf的回车结束符,一定要注意
	
	printf("char 类型作为情况索引================\n");
	puts("请输入一个大写字母");
	scanf("%c",&cdata);
		switch(cdata){
		case 'A':
			puts("满足了条件A的情况");
			break;		
		case 'B':
			puts("满足了条件B的情况");
			break;
		case 'C':
			puts("满足了条件C的情况");
			break;
		default:
			puts("其他非A,B,C的情况");
			break;
	
	}
	
	return 0;
}
演示2

在这里插入图片描述


经典成绩分类案例

代码

#include <stdio.h>

int main()
{
	int score;
	
	printf("经典成绩分类编程\n");
	puts("请输入分数");
	scanf("%d",&score);
	
	switch(score/10){
		case 0:
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			printf("等级为D,不及格,学渣\n");
			break;
		case 6:
		case 7:
			printf("等级为C,勉强及格,一般般\n");
			break;
		case 8:
		case 9:
			printf("等级为B,良好,不错了\n");
			break;
		case 10:
			printf("等级为A,优秀,学霸\n");
			break;
		default:
			puts("非法输入");
			break;		
	}
		
	return 0;
}

这个代码稍微有点问题,就是100-109都是可以触发case10事件的

演示

在这里插入图片描述



----- 如有错误欢迎大家批评指正!!!

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小爪.exe

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

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

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

打赏作者

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

抵扣说明:

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

余额充值