(五)流程控制switchcase

news2024/11/23 11:25:38

文章目录

  • switch case
    • 用法
    • 全配套break
      • 示例
      • 演示
    • 不全配套break
      • 不怎么常规的写法
      • 常规的写法
        • 示例1
        • 演示1
        • 示例2
        • 演示2
    • 经典成绩分类案例
      • 代码
      • 演示


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事件的

演示

在这里插入图片描述



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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1415964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu 22 安装 node,npm,vue

1:安装 nodejs sudo apt update curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt update && sudo apt install -y nodejs node -v 2:安装npm sudo npm install n -g npm -v 3:安装vite npm install vite -g 4:运行vue 把项目拷贝到…

「 典型安全漏洞系列 」06.路径遍历(Path Traversal)详解

引言&#xff1a;什么是路径遍历&#xff1f;如何进行路径遍历攻击并规避常见防御&#xff1f;如何防止路径遍历漏洞。 1. 简介 路径遍历&#xff08;Path Traversal&#xff09;是一种安全漏洞&#xff0c;也被称为目录遍历或目录穿越、文件路径遍历。它发生在应用程序未正确…

Tomcat10安装报错Unknown module: java.rmi specified to --add-opens

错误原因需要根据自己的tomcat的版本查看 需要根据自己的tomcat找到对应安装的java版本(查看版本网址)https://tomcat.apache.org/whichversion.html 将电脑当中的环境变量JRE_HOME变量删除即可&#xff08;具体如下图&#xff09;

LeetCode 热题 100 | 矩阵

目录 1 73. 矩阵置零 2 54. 螺旋矩阵 3 48. 旋转图像 4 240. 搜索二维矩阵 II 菜鸟做题第二周&#xff0c;语言是 C 1 73. 矩阵置零 解题思路&#xff1a; 遍历矩阵&#xff0c;寻找等于 0 的元素&#xff0c;记录对应的行和列将被记录的行的元素全部置 0将被记录的…

redis-4 搭建redis集群

1.为什么需要redis集群&#xff1f; Redis 集群提供了高可用性、横向扩展和数据分片等功能&#xff0c;使得 Redis 能够应对大规模的数据存储和高并发访问的需求。以下是一些需要使用 Redis 集群的常见情况&#xff1a; 高可用性&#xff1a;通过在多个节点之间进行数据复制和…

网络编程1

什么是网络编程 ⽹络编程&#xff0c;指⽹络上的主机&#xff0c;通过不同的进程&#xff0c;以编程的⽅式实现⽹络通信&#xff08;或称为⽹络数据传输&#xff09;。 当然&#xff0c;我们只要满⾜进程不同就⾏&#xff1b;所以即便是同⼀个主机&#xff0c;只要是不同进程…

【服务器Midjourney】创建部署Midjourney网站

目录 🌺【前言】 🌺【准备】 🌺【宝塔搭建MJ】 🌼1. 给服务器添加端口 🌼2. 使用Xshell连接服务器 🌼3. 安装docker 🌼4. 安装Midjourney程序 🌼5. 绑定域名+申请SSL证书 🌼6. 更新网站

数据结构.双链表循环链表

一、1.双链表的初始化 void InitLNode(LinkList& L)//双链表的初始化 {L (LNode*)malloc(sizeof(LNode));L->prior NULL;L->next NULL;} 2.双链表的插入 void DInsert(LNode* p,LNode*s)//在p结点后面插入s结点 {s->next p->next;s->next->prior s;…

支持向量机(SVM)详解

支持向量机&#xff08;support vector machines&#xff0c;SVM&#xff09;是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器&#xff0c;间隔最大使它有别于感知机。 1、线性可分支持向量机与硬间隔最大化 1.1、线性可分支持向量机 考虑一个二分…

数据结构篇-03:堆实现优先级队列

本文着重在于讲解用 “堆实现优先级队列” 以及优先级队列的应用&#xff0c;在本文所举的例子中&#xff0c;可能使用优先级队列来解并不是最优解法&#xff0c;但是正如我所说的&#xff1a;本文着重在于讲解“堆实现优先级队列” 堆实现优先级队列 堆的主要应用有两个&…

MySQL索引类型及数据结构【笔记】

1 索引类型 返回面试宝典 主键索引&#xff08;PRIMARY&#xff09;:数据列不允许重复&#xff0c;不允许为NULL&#xff0c;一个表只能有一个主键。 唯一索引&#xff08;UNIQUE&#xff09;:数据列不允许重复&#xff0c;允许为NULL&#xff0c;一个表允许多个列创建唯一索引…

【Go】深入理解 Go map:赋值和扩容迁移 ①

文章目录 map底层实现hmapbmap map hash冲突了怎么办&#xff1f; map扩容触发扩容时机扩容小结为什么map扩容选择增量&#xff08;渐进式扩容&#xff09;&#xff1f;迁移是逐步进行的。那如果在途中又要扩容了&#xff0c;怎么办&#xff1f; map翻倍扩容原理 map写入数据内…

Easysearch:语义搜索、知识图和向量数据库概述

什么是语义搜索&#xff1f; 语义搜索是一种使用自然语言处理算法来理解单词和短语的含义和上下文以提供更准确的搜索结果的搜索技术。旨在更好地理解用户的意图和查询内容&#xff0c;而不仅仅是根据关键词匹配&#xff0c;还通过分析查询的语义和上下文来提供更准确和相关的…

Spring与Redis集成

1.引入RedisTemplate 据以前的情况&#xff0c;我们在Java中使用Redis时一般是使用Jedis来操作的&#xff0c;大致的一段代码如下所示 Overridepublic User findUserById(Integer id) {User user null;Jedis jedis null;try {jedis jedisPool.getResource();String userStr…

【YOLO系列算法俯视视角下舰船目标检测】

YOLO系列算法俯视视角下舰船目标检测 数据集和模型YOLO系列算法俯视视角下舰船目标检测YOLO系列算法俯视视角下舰船目标检测可视化结果 数据集和模型 数据和模型下载&#xff1a; YOLOv6俯视视角下舰船目标检测训练好的舰船目标检测模型舰船目标检测数据YOLOv7俯视视角下舰船…

机器学习|ROC曲线和AUC值

概念AUC&#xff08;Area Under Curve&#xff09;被定义为ROC曲线下的面积。其中&#xff0c;ROC曲线全称为受试者工作特征曲线 &#xff08;receiver operating characteristic curve&#xff09;&#xff0c; 模型会计算出所判断事物为汉堡&#x1f354;的概率&#xff0c;而…

基于DataKit迁移MySQL到openGauss

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

华为二层交换机与防火墙配置上网示例

二层交换机与防火墙对接上网配置示例 组网图形 图1 二层交换机与防火墙对接上网组网图 二层交换机简介配置注意事项组网需求配置思路操作步骤配置文件相关信息 二层交换机简介 二层交换机指的是仅能够进行二层转发&#xff0c;不能进行三层转发的交换机。也就是说仅支持二层…

[SwiftUI]系统弹窗和自定义弹窗

一、系统弹窗 在 SwiftUI 中&#xff0c;.alert 是一个修饰符&#xff0c;用于在某些条件下显示一个警告对话框。Alert 可以配置标题、消息和一系列的按钮。每个按钮可以是默认样式、取消样式&#xff0c;或者是破坏性的样式&#xff0c;它们分别对应不同的用户操作。 1.Aler…

Power ModeII 插件的下载与使用-----idea

下载 Marketplace里面搜索下载即可 使用 下载后重启软件就可以用了 下面是一些关于Power ModeII &#xff0c;我的个性化设置截图 以及相关设置解释 插件或扩展的设置面板【用于给代码编辑器或集成开发环境&#xff08;IDE&#xff09;添加视觉效果】 主要设置 ENTER POWE…