笔记13:switch多分支选择语句

引例:

输入1-5中的任意一共数字,对应的打印字符A,B,C,D,E

int num = 0;
printf("Input a number[1,5]:");
scanf("%d",&num);
if( num == 1)printf("A\n");
else 
if(num==2)printf("B\n");
else if(num== 3)printf("C\n");
else 
if(num == 4)printf("D\n");
else 
if(num ==5 )printf("E\n");
elseprintf("Invalid Inut\n");

问题:有没有更加简洁的多分支选择结构语句?

switch-更简洁的多分支选择结构

wsitch(var)
{case x;//语句x1;//......var == x,时,执行这里的语句//语句xn;break;//每个分支代码的最后必须加上break,否则将继续向下执行。case y;//语句y1;//......var == y,时,执行这里的语句//语句yn;break;case z;//语句z1;//......var == z,时,执行这里的语句//语句zn;break;default;//默认情况,执行default的语句
}

示例分析:

#include<stdio.h>
int main( )
{int a= 1;//先定义三个变量int b = 2;char sign =0;//char是只有一个的整型printf("Input a sign:");//打印字符串scanf("%c",&sign);//输入字符getchar();//解决闪退问题switch(sign)//进行多分支选择{case'+'://如果键盘上输入的是+,就是进行加法运算,然后跳出;printf("%d + %d = %d\n",a, b, a+ b);break;case'-'://如果键盘上输入的是-,就是进行减法运算,然后跳出;printf("%d-%d=%d\n",a,b,a-b);break;default://如果上面都不满足;printf("Unsupport sign:%c\n", sign);}getchar();return 0;
}

运行结果:

更改1

现在根据所学,对引例进行更改;

#include<stdio.h>
int main( )
{int num= 0;//先定义三个变量printf("Input a number[1,5]:");//打印字符串scanf("%d",&num);//输入字符getchar();//解决闪退问题switch( num )//进行多分支选择{case 1://如果键盘上输入的是1,就是A,然后跳出printf("A\n");break;case 2://如果键盘上输入的是2,就是B,然后跳出printf("B\n");break;case 3://如果键盘上输入的是3,就是C,然后跳出printf("C\n");break;case 4://如果键盘上输入的是4,就是D,然后跳出printf("D\n");break;case 5://如果键盘上输入的是5,就是E,然后跳出printf("E\n");break;default://如果上面都不满足printf("Invalid Inut\n");}getchar();return 0;
}

运行结果:

switch 实验小结

1.switch 仅能适用于离散变量或值(整数值 ),如果用浮点型就会报错;
2.case 是分支入口,匹配成功后执行case 下的语句;
3.当语句全部执行后,需要使用 break 跳出执行分支;
4.default 分支不是必须的(类似于 else 分支不是必须的);

示例分析:

#include<stdio.h>
int main()
{int num = 0;printf("Input a number:");scanf("%d",&num);getchar();switch( num % 3)//%整除3取余数{case 0:printf("Object Number:%d\n",num);//需要的数break;//不要忘记break,如果没有就会把所有需要打印的都打印了case 1:printf("Bigger!\n");//数大了,减一就可以除三break;case 2:printf("Smaller!\n");//数小了,减一就可以除三break;}getchar();return 0;
}

运行结果:

switch语句的分支合并技巧

switch(var)
{case a;case b;语句1;//var == a||var == b时,执行这里的语句;......语句n;break;case c;case d;语句1;//var == a||var == b时,执行这里的语句;......语句n;break;default;......
}

更改2

#include<stdio.h>
int main( )
{int num= 0;//先定义三个变量printf("Input a number[1,5]:");//打印字符串scanf("%d",&num);//输入字符getchar();//解决闪退问题switch( num )//进行多分支选择{case 1:case 2:case 3:case 4:case 5:printf("%c\n" , 'A'+(num-1) );//B-A=1,(B=A+1);C-A=2,(C=A+2)...E-A=4,(E=A+4)//注意,时‘’,不是“”break;default://如果上面都不满足printf("Invalid Inut\n");}getchar();return 0;
}

运行结果:

小结:

1.switch 是一种更简洁的分支选择结构
2.switch 仅能适用于整数(小数不可用)
3.case 是分支入口,匹配成功后执行 case 下的语句
4.当语句全部执行后,需要使用 break 跳出执行分支
5.多个 case 可合并在一起,执行相同的语句

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

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

相关文章

Alibaba Cloud Toolkit前端使用proxy代理配置

1、vscode 先安装插件 Alibaba Cloud Toolkit 2、前端代码&#xff1a; /personnel: {// target: http://xxx.xx.xxx.xx:9100, // 测试环境// target: http://xxx.xx.xxx.xx:9200, // 线上环境target: http://127.0.0.1:18002, // toolkit 代理changeOrigin: true,},3、打开插…

Android LayoutInflater 深度解析

在 Android 开发中&#xff0c;LayoutInflater 是一个非常重要的工具。它允许我们从 XML 布局文件中动态地创建 View 对象&#xff0c;从而使得 UI 的创建和管理更加灵活。本文将深入解析 android.view.LayoutInflater&#xff0c;包括它的基本用法、常见问题以及高级用法。 什…

MySQL架构和工作流程

引言&#xff1a;MySQL执行一条sql语句期间发生了什么&#xff1f; 想要搞清楚这个问题&#xff0c;我们必须了解MySQL的体系结构和工作流程 一、MySQL体系结构 MySQL由以下几个部分组成 一、server层 1.MySQL Connnectors连接器&#xff0c;MySQL的连接池组件&#xff0c;…

数据结构+算法-实现一个计算器

在学习栈的数据结构的时候讲到可以用栈来实现一个计算器的功能&#xff0c;那么这个功能是如何实现的呢&#xff1f; 采用栈模拟得方式来实现一个计算器 要实现如下的功能: 字符串如何转为整数 2.处理加减法 如何处理加减法呢&#xff1f; 5-128 给第一个数字前面放一个号…

UEC++ 虚幻5第三人称射击游戏(二)

UEC++ 虚幻5第三人称射击游戏(二) 派生榴弹类武器 新建一个继承自Weapon的子类作为派生榴弹类武器 将Weapon类中的Fire函数添加virtual关键字变为虚函数让榴弹类继承重写 在ProjectileWeapon中重写Fire函数,新建生成投射物的模版变量 Fire函数重写逻辑 代码//生成的投射物U…

从文本到安全图像:自动提示优化防止不当内容生成

T2I生成技术已经得到了广泛关注&#xff0c;并见证了如GLIDE、Imagen、DALL-E 2、Stable Diffusion等大型生成模型的发展。尽管这些模型能够根据文本描述生成高质量的图像&#xff0c;促进了书籍插图、品牌标识设计、游戏场景创作等多种实际应用&#xff0c;但它们也被恶意用户…

使用京东云主机搭建幻兽帕鲁游戏联机服务器全流程,0基础教程

使用京东云服务器搭建幻兽帕鲁Palworld游戏联机服务器教程&#xff0c;非常简单&#xff0c;京东云推出幻兽帕鲁镜像系统&#xff0c;镜像直接选择幻兽帕鲁镜像即可一键自动部署&#xff0c;不需要手动操作&#xff0c;真正的新手0基础部署幻兽帕鲁&#xff0c;阿腾云整理基于京…

Python学习笔记30:进阶篇(十九)pygame的使用之显示与窗口管理

前言 基础模块的知识通过这么长时间的学习已经有所了解&#xff0c;更加深入的话需要通过完成各种项目&#xff0c;在这个过程中逐渐学习&#xff0c;成长。 我们的下一步目标是完成python crash course中的外星人入侵项目&#xff0c;这是一个2D游戏项目。在这之前&#xff…

YOLOv8改进 | 注意力机制 | 结合静态和动态上下文信息的注意力机制

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

力扣双指针算法题目:双数之和,三数之和,四数之和

目录 一&#xff1a;双数之和 1.题目&#xff1a; 2.思路解析 3.代码 二&#xff1a;三数之和 1.题目 2.思路解析 3&#xff0c;代码 三&#xff1a;四数字之和 1.题目 2.思路解析 3.代码 一&#xff1a;双数之和 1.题目&#xff1a; 输入一个递增排序的数组和一…

贵州建筑三类人员安全员2024年考试最新题库练习题

一、单选题 1.建设工程安全管理的方针是&#xff08;&#xff09;。 A.安全第一&#xff0c;预防为主&#xff0c;综合治理 B.质量第一&#xff0c;兼顾安全 C.安全至上 D.安全责任重于泰山 答案&#xff1a;A 2.安全生产管理的根本目的是&#xff08;&#xff09;。 A.…

Lunaproxy与711Proxy的对比与优劣分析

今天我们来深入对比两款在市场上备受关注的代理IP服务&#xff1a;Lunaproxy和711Proxy。接下来&#xff0c;我们将从多个角度对这两款服务进行详细分析&#xff0c;帮助大家做出明智的选择。 优势分析 711Proxy的优势 1. 性价比高&#xff1a;711Proxy提供多种灵活的套餐选…

伪元素content追加文字使用小技巧

E::before和E::after本身的作用是追加字&#xff0c;直接在文字后面追加链接 <!DOCTYPE html> <html lang"zh-cn"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…

AI文本转语音,再也不用担心视频配音了.

文章目录 简介代码实现调用开通百度付费包 简介 背景 我想要将文本,转为语音,然后配上图片,这样就可以很快生成一个视频. 可以说是配音吧,我还是比较喜欢通过代码来自动化.所以今天就来实现一下,同时做一下分享和记录.目标 通过python代码,自动将文本转为配音.平台 我选择了百…

万界星空科技MES系统中的排版排产功能

在当今高度竞争的市场环境中&#xff0c;企业对于生产管理的效率和质量要求日益提高。作为智能制造的重要组成部分&#xff0c;制造执行系统&#xff08;MES&#xff09;以其强大的功能&#xff0c;在提升企业生产能力方面发挥着不可替代的作用。万界星空科技作为行业领先的智能…

MongoDB集群搭建-最简单

目录 前言 一、分片概念 二、搭建集群的步骤 总结 前言 MongoDB分片&#xff08;Sharding&#xff09;是一种水平扩展数据库的方法&#xff0c;它允许将数据分散存储在多个服务器上&#xff0c;从而提高数据库的存储容量和处理能力。分片是MongoDB为了应对大数据量和高吞吐量需…

Science期刊政策反转:允许生成式AI用于论文写作,意味着什么?

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 关于各大top期刊和出版社对于生成式AI用于论文写作中的规定&#xff0c;娜姐之前写过一篇文章&#xff1a; 如何合理使用AI写论文&#xff1f;来看Top 100学术期刊和出版社的…

深度解析 Raft 分布式一致性协议

本文参考转载至&#xff1a;浅谈 Raft 分布式一致性协议&#xff5c;图解 Raft - 白泽来了 - 博客园 (cnblogs.com) 深度解析 Raft 分布式一致性协议 - 掘金 (juejin.cn) raft-zh_cn/raft-zh_cn.md at master maemual/raft-zh_cn (github.com) 本篇文章将模拟一个KV数据读写服…

【漏洞复现】禅道——未授权登入(QVD-2024-15263)

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 禅道&#xff08;Zentao&#xff09;是一款开源的项目管理和协作…

死锁-活锁与活锁的预防、死锁与死锁的预防和检测(处理死锁的方式:事务等待图)

一、引言 1、死锁是因采用封锁技术实现并发控制而产生的一种运行事务被阻塞或等待的现象 2、如果利用严格两阶段封锁协议来解决我们前面提到的“更新丢失”这种数据不一致问题&#xff0c;非串行调度中的事务T1首先获得数据对象X上的读锁并开始执行&#xff0c;随后事务T2也获…