C语言之Switch语句

目录

Switch语句和break语句

复杂的Switch语句

选择语句


if语句会根据某个条件的判断结果,将程序的流程分为两支,而Switch语句,则会将程序分为多个分支。

Switch语句和break语句

让我们来看下Switch语句的结构图:(括号内的表达式必须是整形)

cd580656a4644670a968cb6a92264935.png

 我们用一段程序来具体说明:

#include<stdio.h>int main()
{int no;printf("请输入一个整数:");scanf("%d", &no);switch(no % 3){case 0:puts("该整数能被3整除");         break;case 1:puts("该整数不能被3整除余数是1");break;case 2:puts("该整数不能被3整除余数是2");break;}return 0;
}

想case 1:这样用来表示程序跳转的标识称为标签(label)

注意:case和1之间必须有空格,1和:之间有没有空格都可以。

 标签值必须为常量,不可为变量,不允许出现重复的标签值。程序跳转到改标签后会按顺序执行其语句。

当程序出现break语句时,Switch语句会执行结束。break有“打破、脱离”之意,执行break语句会程序会跳出Switch语句的范围。

03bab50f9c6e4791b998b1482988df01.png

复杂的Switch语句

我们给下列商品编号,脉动为1,冰红茶为2,牛肉面为3,炒饭为4……我们如何用Switch语句做选择呢?

#include<stdio.h>int main()
{int selection;printf("请输入商品的编号:");scanf("%d", &selection);switch(selection){case 1:puts("我要喝脉动");      break;case 2:puts("我要喝冰红茶");    break;case 3:puts("我要吃牛肉面");    break;case 4:puts("我要吃炒饭");      break;default :puts("请重新选择");}return 0;
}

 当判断表达式的判断结果与任何一个case都不一致时,程序会跳转到default :继续执行。

/*确认Switch语句动作的程序*/
#include<stdio.h>int main()
{int sw;printf("请输入一个整数:");scanf("%d", &sw);switch(sw){case 1:puts("A");  puts("B");break;case 2:puts("C");case 5:puts("D");break;case 6:case 7:puts("E");break;default :puts("F");break;}return 0;
}

当然,我们也可以把上面这种Switch语句执行时运算的流程图给表示出来:

b5764c0de96c499680da264a03a70d9c.png

Switch相较于if语句脉络更加的清晰,通过单一表达式来控制程序流程分支时,使用Switch通常要比使用if语句效果更好。

选择语句

 我们现在学习的if语句和Switch语句,都是用来实现程序流程的选择性分支的,统称为选择语句

在下一章节中我们将会学习到都语句,来实现更多的功能!

最后感谢您的观看,希望您能从中学到一些知识!

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

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

相关文章

软件开发、管理、运维、实施、验收、交付、安全检查等文档支撑

软件开发涉及到哪些文档&#xff1a; 全文档获取&#xff1a;点我获取 可行性分析报告&#xff1a;在项目开始前&#xff0c;需要编写可行性分析报告&#xff0c;评估项目的可行性、技术需求、成本预算等因素&#xff0c;为决策提供依据。项目开发计划&#xff1a;明确项目的…

基于个微机器人的开发

简要描述&#xff1a; 下载消息中的动图 请求URL&#xff1a; http://域名/getMsgEmoji 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明…

C++新经典模板与泛型编程:用成员函数重载实现std::is_convertible

用成员函数重载实现is_convertible C标准库中提供的可变参类模板std::is_convertible&#xff0c;这个类模板的主要能力是判断能否从某个类型隐式地转换到另一个类型&#xff0c;返回的是一个布尔值true或false。例如&#xff0c;一般的从int转换成float或从float转换成int&am…

Zabbix自动发现机制

Zabbix的自动发现机制 Zabbix客户端主动的和服务端联系&#xff0c;将自己的地址和端口发送服务端&#xff0c;实现自动添加监控主机&#xff0c;客户端是主动的一方缺点自定义网段中主机数量太多&#xff0c;等级耗时会很久&#xff0c;而且这个自动发现机制不是很稳定 Zabb…

分享一个微信红包封面过审方法

大家好&#xff0c;我是小悟 兄弟们&#xff0c;已经12月份了&#xff0c;今年的最后一个月&#xff0c;距离过年还有两个月左右&#xff0c;如果你需要制作微信红包封面&#xff0c;我建议你现在就可以着手了。 一方面&#xff0c;临近春节&#xff0c;会有很多人在制作红包封…

解决思维题的一些自我总结

目录 常见思维题类型 排序 区间问题 01串串 字符串串 位运算 gcd 与 lcm 质数相关 二元组 常见思维题类型 思维题很多都可以说是贪心、但贪心种类很多&#xff0c;具体怎么贪&#xff0c;重要的还是在于积累经验吧...有些东西也很难总结&#xff0c;以下算是我的碎碎念…

项目架构-六边形架构的概述和实现

使用传统的分层架构&#xff0c;我们的所有依赖项都指向一个方向&#xff0c;上面的每一层都依赖于下面的层。传输层将依赖于交互器&#xff0c;交互器将依赖于持久层。 在六边形架构中&#xff0c;所有依赖项都指向内部——我们的核心业务逻辑对传输层或数据源一无所知。尽管如…

http与apache

目录 1.http相关概念 2.http请求的完整过程 3.访问浏览器背后的原理过程 4.动态页面与静态页面区别 静态页面&#xff1a; 动态页面&#xff1a; 5.http协议版本 6.http请求方法 7.HTTP协议报文格式 8.http响应状态码 1xx&#xff1a;提示信息 2xx&#xff1a;成功…

2-4、DEBUG和源程序区别

语雀原文链接 文章目录 1、DEBUG 和 汇编编译器MASM区别1&#xff1a;默认进制不同区别2&#xff1a;[地址]示例1&#xff1a;debug示例2&#xff1a;[0]示例3&#xff1a;[寄存器]示例4&#xff1a;ds:[0]小结 区别3&#xff1a;源程序数据不能以字母开头 1、DEBUG 和 汇编编…

【二叉树】

文章目录 树形结构注意要点细分概念树在生活中的应用 二叉树什么是二叉树二叉树特点&#xff1a;两种特殊的二叉树二叉树的性质二叉树性质的练习二叉树的存储二叉树的遍历前序遍历中序遍历后序遍历遍历练习 树形结构 树是一种非线性的数据结构&#xff0c;它具有以下的特点&am…

class059 建图、链式前向星、拓扑排序【算法】

class059 建图、链式前向星、拓扑排序【算法】 code1 建图 package class059;import java.util.ArrayList; import java.util.Arrays;public class Code01_CreateGraph {// 点的最大数量public static int MAXN 11;// 边的最大数量// 只有链式前向星方式建图需要这个数量// 注…

Unity 关于Ray、RaycastHit、Raycast及其使用

Unity中&#xff0c;我们要进行物理模拟和碰撞检测时&#xff0c;有三个重要的概念Ray、RaycastHit、Raycast。 其中&#xff0c;Ray可以理解为射线&#xff0c;它是一条从起点沿着特定方向延伸的无限长线段。 它的语法是&#xff1a; Ray(Vector3 origin, Vector3 directio…