当前位置: 首页 > news >正文

【C语言】03.分支结构

本文用以介绍分支结构,主要的实现方式为if语句和switch语句。

一、if语句

1.1 if语句

if (表达式)语句

表达式为真则执行语句,为假就不执行。在C语言中,0表示假,非0表示真.下图表示if的执行过程:
在这里插入图片描述

1.2 else语句

当判断一个条件不成立时,可以在去走else语句。

if(表达式)语句
else语句

默认在ifelse语句中都是只包含1条语句。如果要同时控制多条语句,那就要使用{ }

1.3 嵌套语句

if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断.

1.4 悬空else问题

如果有多个 ifelse ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配

二、关系操作符

C语言中用于比较的表达式称作“关系表达式”,里面的运算符就称作“关系运算符”,主要有如下6个:> < <= >= == != 。关系表达式的结果通常为0或1,表示真假。

注意:相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,不要混淆。

三、条件操作符

条件操作符也叫三目操作符,需要接受三个操作数的,形式如下:

	exp1 ? exp2 : exp3

条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果
exp1 为假, exp3 计算,计算的结果是整个表达式的结果。

四、逻辑操作符 && ,|| ,!

逻辑运算符提供逻辑判断功能,用于构建更复杂的表达式,主要有下面三个运算符:

4.1 !:逻辑取反运算符(改变单个表达式的真假)在这里插入图片描述

4.2 &&:与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)在这里插入图片描述

4.3||:或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)

在这里插入图片描述

4.4 短路

C语言逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”

五、switch 语句

5.1 switch 语句

除了 if 语句外,C语言还提供了 switch 语句来实现分支结构。
switch 语句是⼀种特殊形式的if...else 结构,用于判断条件有多个结果的情况。它把多重的 else if 改成更易用、可读性更好的形式。

switch (expression) 
{case value1: statementcase value2: statementdefault: statement//1. case 和后边的数字之间必须有空格//2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。
}

上面代码中,根据表达式 expression 不同的值,执行相应的 case 分支。如果找不到对应的值,就执行 default 分支。
注:
• switch 后的 expression 必须是整型表达式
• case 后的值,必须是整形常量表达式

switch 语句也是分支效果的,只有在 switch 语句中使⽤ break 才能在跳出 switch 语句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续玩下执行,有可能执行其他 case 语句中的代码,直到遇到 break 语句或者 switch 语句结束。

5.2 default 语句

在使用 switch 语句的时候,我们经常可能遇到⼀种情况,比如 switch 后的表达式中的值无法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加入default 子句。

在 switch 语句中 case ⼦句和 default ⼦句有要求顺序吗? default 只能放在最后吗?
其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满足实际需求的就可以。不过我们通常是把 default ⼦句放在最后处理的。

相关文章:

【C语言】03.分支结构

本文用以介绍分支结构&#xff0c;主要的实现方式为if语句和switch语句。 一、if语句 1.1 if语句 if (表达式)语句表达式为真则执行语句&#xff0c;为假就不执行。在C语言中&#xff0c;0表示假&#xff0c;非0表示真.下图表示if的执行过程&#xff1a; 1.2 else语句 当…...

uniapp手机屏幕左滑返回上一页支持APP,H5

核心&#xff1a;touchstart"touchStart" touchend"touchEnd" 代码示例&#xff1a; <template><view class"payPasswordSetting" touchstart"touchStart" touchend"touchEnd"></view> </template&g…...

【Java毕业设计】基于JavaWeb的洗衣店管理系统

文章目录 摘要ABSTRACT目 录1 概述1.1 研究背景及意义1.2 国内外研究现状1.3 拟研究内容1.4 系统开发技术1.4.1 SpringBoot框架1.4.2 MySQL数据库1.4.3 MVC模式 2 系统需求分析2.1 可行性分析2.2 功能需求分析 3 系统设计3.1 功能模块设计3.2 系统流程设计3.3 数据库设计3.3.1 …...

使用sqlldr向oracle导入大量数据

&#xff08;1&#xff09;在Oracle主机安装oracle客户端 sqlldr&#xff0c;在命令行输入sqlldr&#xff0c;若有help指导即已经安装了&#xff1b; &#xff08;2&#xff09;创建一个xxx.ctl文件 这个文件是执行导入数据的语句&#xff0c;其中包含需要导入的数据&#x…...

Milvus LIKE操作符

在Milvus中&#xff0c;虽然LIKE操作符被用于模糊匹配字符串&#xff0c;但其支持的模式匹配能力有限。根据你收到的错误信息&#xff0c;Milvus目前只支持两种类型的LIKE模式匹配&#xff1a; 前缀匹配&#xff0c;例如LIKE ab%&#xff0c;这意味着任何以ab开头的字符串都会…...

iQOO neo 5精简内置组件

无他!系统自带了太多组件,都用不到,连打开都不曾打开过。 下午整理一篇精简组件的列表,各自按照各自的需要进行精简哦。别盲目跟风,要不然手机使用会出问题。 精简步骤 使用任意刷机工具,开启手机的开发权限,然后adb连接 删除组件列表如下: pm uninstall --user 0…...

为什么给网站安装SSL证书之后还是有被提示不安全?

分为两种情况一种是安装了付费证书之后还是显示无效&#xff0c;另一种是安装了免费SSL证书的。 付费SSL证书&#xff1a;直接找厂商帮助解决遇到的问题&#xff0c;一般都是有专业的客服来对接这些的。 免费SSL证书&#xff1a;出现这种情况的原因会有很多。因为免费SSL证书的…...

创建Frame单例,实现WPF页面跳转

需求&#xff1a; 有一个F0View主页面入口&#xff0c;三个子页面&#xff08;First.xaml/Second.xaml/Third.xaml&#xff09;用Frame默认加载第一个页面 First.xaml。实现三个页面之间顺序跳转&#xff0c;并且每个页面只初始化一次。 实现&#xff1a; 1&#xff0c;将三…...

正宇软件助力江西数字人大建设,高效解决群众“急难愁盼”问题

近日&#xff0c;赣州市南康区群众通过“江西数字人大”小程序成功解决道路塌陷等民生问题&#xff0c;引发社会广泛关注。这一成功案例不仅彰显了“数字人大”在解决群众“急难愁盼”问题中的重要作用&#xff0c;也凸显了江西地区近年来在数字化人大建设方面的显著成效。正宇…...

打造AIPC轻量化方案 360AI浏览器及360AI搜索全新发布

“搜索这20多年来没有发生变化&#xff0c;我们希望这次能来一场革命。”6月6日&#xff0c;360AI新品发布会暨开发者沟通会在京举办。会上&#xff0c;三六零&#xff08;股票代码&#xff1a;601360.SH&#xff0c;以下简称360&#xff09;集团发布全新360AI搜索及360AI浏览器…...

《effective c++》学习笔记

从今天开始看《effective c》这本书&#xff0c;把学到的东西当做笔记记下来&#xff0c;算是督促自己学习吧&#xff0c;也算是和大家一起分享一点东西&#xff0c;理解不当的地方&#xff0c;请谅解。&#xff08;每天更新三个条款&#xff09;。 一&#xff1a;让自己习惯C…...

11.盛水最多的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。 示例 1&a…...

通过在idea上搭建虚拟hadoop环境使用MapReduce做词频去重

idea上的MapReduce ​ 一般在开发中&#xff0c;若是等到环境搭配好了再进行测试或者统计数据&#xff0c;数据处理等操作&#xff0c;那会很耽误时间&#xff0c;所以一般都是2头跑&#xff0c;1波人去在客户机上搭建环境&#xff0c;1波人通过在idea上搭建虚拟hadoop环境&am…...

AI技术变革与企业服务创新

1、AI的技术变革 1&#xff09;AI市场规模 2&#xff09;AI大模型发展历程 3&#xff09;AIGC发展背景 4&#xff09;AIGC技术能力 AIGC的技术架构逻辑上分为基础层、技术层、能力层、应用层、终端层五大板块&#xff0c;其中核心技术层涵盖AI技术群和大模型的融合创新&#…...

探秘Facebook:社交媒体的未来之路

Facebook&#xff0c;作为全球最大的社交媒体平台之一&#xff0c;一直处于数字社交革命的前沿。然而&#xff0c;随着科技和社会的不断发展&#xff0c;Facebook正面临着新的挑战和机遇。本文将探索Facebook的未来之路&#xff0c;揭示社交媒体的新趋势和发展方向。 1. 深度社…...

rust的类型转换和一些智能指针用法(四)

基础类型 使用 as 关键字&#xff1a;用于基本数值类型之间的转换&#xff0c;例如将 i32 转换为 u32。 例子&#xff1a;let x: i32 10; let y: u64 x as u64; 使用标准库中的转换方法&#xff1a;如 from() 和 into() 方法&#xff0c;这些方法通常用于无风险的转换&#…...

探索大模型技术及其前沿应用——TextIn文档解析技术

前言 中国图象图形大会&#xff08;CCIG 2024&#xff09;于近期在西安召开&#xff0c;此次大会将面向开放创新、交叉融合的发展趋势&#xff0c;为图像图形相关领域的专家学者和产业界同仁&#xff0c;搭建一个展示创新成果、展望未来发展&#xff0c;集高度、深度、广度三位…...

Java HashMap 扩容机制深度解析

HashMap 的一个关键性能优化就是扩容机制&#xff0c;即在哈希表达到一定负载因子时&#xff0c;自动进行扩容&#xff0c;以保持检索效率。 在这篇文章中&#xff0c;我们将深入研究 HashMap 的扩容机制&#xff0c;了解其原理和影响因素。 1. 初始容量和负载因子 在深入了解…...

一、Electron 环境初步搭建

新建一个文件夹&#xff0c;然后进行 npm init -y 进行初始化&#xff0c;然后我们在进行 npm i electron --save-dev , 此时我们按照官网的教程进行一个初步的搭建&#xff0c; 1.在 package.json 文件进行修改 {"name": "electron-ui","version…...

ffmpeg编码器编码元数据的过程以及编码前后的差异

编码方式为avcodec_send_frame&#xff1a;将原始帧发送到编码器进行编码 编码过程完成于avcodec_receive_packet&#xff1a;从编码器接收编码后的压缩数据&#xff0c;也就是说已经编码压缩完成了&#xff0c;并存储到avpacket中&#xff0c;此时元数据被分割成多个NALU单元&…...

FastAPI异步测试终极指南:如何快速模拟HTTP请求进行高效测试

FastAPI异步测试终极指南&#xff1a;如何快速模拟HTTP请求进行高效测试 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI异步测…...

AI率太高被退稿?这5款工具帮你稳过查重+降AI双关!

&#x1f525; 2026实测推荐&#xff1a;5款真正管用的工具1️⃣ 毕业之家 AI&#xff08;毕业季救星&#xff09;AI率效果&#xff1a;<8%亮点&#xff1a;专为国内高校定制&#xff0c;自动适配学校格式要求&#xff0c;连页眉页脚都不用手调价格&#xff1a;本科套餐199元…...

如何优化A-to-Z-Resources-for-Students文档的行距与段距:提升阅读体验的完整指南

如何优化A-to-Z-Resources-for-Students文档的行距与段距&#xff1a;提升阅读体验的完整指南 【免费下载链接】A-to-Z-Resources-for-Students ✅ Curated list of resources for college students 项目地址: https://gitcode.com/GitHub_Trending/at/A-to-Z-Resources-for…...

从多项式逼近到优化求解:泰勒展开与拉格朗日乘子的机器学习实践

1. 泰勒展开&#xff1a;机器学习的"局部望远镜" 第一次接触泰勒公式时&#xff0c;我的数学老师用了个有趣的比喻&#xff1a;这就像用乐高积木拼凑复杂雕塑的局部轮廓。在机器学习中&#xff0c;这个思想被广泛应用——当我们面对复杂的损失函数曲面时&#xff0c;…...

3分钟快速上手:免费Windows字体自定义工具No!! MeiryoUI终极指南

3分钟快速上手&#xff1a;免费Windows字体自定义工具No!! MeiryoUI终极指南 【免费下载链接】noMeiryoUI No!! MeiryoUI is Windows system font setting tool on Windows 8.1/10/11. 项目地址: https://gitcode.com/gh_mirrors/no/noMeiryoUI 还在为Windows系统单调的…...

COMSOL声子晶体复能带模型与PDE模块:声学黑洞复能带模型及实虚能带绘制与二维结构分析

comsol声子晶体复能带模型 PDE模块 声学黑洞 复能带模型 实能带与虚能带的绘制 参考论文 前两个是论文图&#xff0c;后四个是模型及结果图。 可根据模型设置&#xff0c;进行其他二维结构的分析复能带这玩意儿搞声子晶体的肯定不陌生&#xff0c;但用COMSOL PDE模块手搓模型…...

Flow Matching 流匹配策略:从理论到机器人实时控制

目录 1.1.1.1 流匹配的基本定义 1.1.1.2 连续性方程与概率路径演化 1.1.1.3 流匹配损失函数的标准形式 1.2.1.1 条件概率路径的构造原理 1.2.1.2 条件向量场的确定性映射 1.2.1.3 条件流匹配损失的等价性证明 1.2.1.4 线性插值路径的实例化 2.1.1.1 Kantorovich最优传输…...

OpCore Simplify:自动化OpenCore EFI配置的革命性工具

OpCore Simplify&#xff1a;自动化OpenCore EFI配置的革命性工具 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore Simplify是一款专为Hackinto…...

OpenWrt旁路由进阶玩法:用iPhone USB网络共享做冗余WAN口,提升家庭网络可靠性

OpenWrt旁路由进阶玩法&#xff1a;用iPhone USB网络共享构建冗余WAN口 当家庭网络的核心设备——主路由器突然宕机时&#xff0c;智能家居离线、视频会议中断、NAS文件无法访问的连锁反应会让人措手不及。而将iPhone的USB网络共享转化为OpenWrt旁路由的备用WAN口&#xff0c;就…...

探索SillyTavern角色卡片系统:从数据封装到沉浸式互动的技术解析

探索SillyTavern角色卡片系统&#xff1a;从数据封装到沉浸式互动的技术解析 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 核心价值&#xff1a;重新定义AI角色的数字存在形式 当我们与…...