10、条件语句

news2024/11/17 18:24:50

目录

一、if语句的基本形式

1. if语句形式

2. if…else语句形式

3. else if语句形式

二、if的嵌套形式

三、条件运算符

四、switch语句

1. switch语句的基本形式

2. 多路开关模式的switch语句


一、if语句的基本形式

在if语句中,首先判断表达式的值,然后根据该值的情况控制程序流程。表达式的值不等于0,也就是为真;否则,就是假值。if语句有if、if…else和else if 3种形式

1. if语句形式

if语句通过对表达式进行判断,根据判断的结果决定是否进行相应的操作。if语句的一般形式如下:

其执行流程图

if后面括号中的表达式就是要进行判断的条件,后面的语句部分则是对应的操作。如果if判断括号中的表达式为真,就执行后面语句的操作;如果为假值,那么不会执行后面的语句部分。例如

代码中判断变量iNum的值,如果变量iNum为真值,则执行后面的输入语句;如果变量的值为假,则不执行后面的语句。

在if语句的括号中,不仅可以判断一个变量的值是否为真,也可以判断一个表达式的值是否为真,例如:

这行代码的含义是:判断变量iSignal==1的表达式,如果条件成立,那么判断的结果是真值,则执行后面的输出语句;如果条件不成立,那么结果为假值,则不执行后面的输出语句。

上述示例代码中,if后面的执行部分只是一条语句。如果有两条语句,又该怎么办呢?这时可以使用大括号,使之成为语句块。例如:

将执行的语句都放在大括号中,这样当if语句判断条件为真时,语句块内的内容将会全部被执行。

2. if…else语句形式

除了可以指定在条件为真时执行某些语句外,还可以在条件为假时执行另外一段代码。

这在C语言中是利用else语句来完成的,其一般形式如下:

其语句的执行流程图

在if后的括号中判断表达式的结果,如果判断的结果为真值,则执行紧跟if后的语句块中的内容;如果判断的结果为假值,则执行else语句后的语句块内容。也就是说,当if语句检验的条件为假时,就执行相应的else语句后面的语句或者语句块。例如:

在上面的代码中,如果if判断变量value的值为真,则执行if后面的语句块。如果if判断的结果为假值,则执行else下面的语句块。

注意:一个else语句必须跟在一个if语句的后面。

3. else if语句形式

利用if和else关键字的组合可以实现else if语句,这是对一系列互斥的条件进行检验,其一般形式如下:

其语句的执行流程图

根据流程图可知,首先对if语句中的表达式1进行判断,如果结果为真值,则执行后面跟着的语句1,然后跳过else if语句和else语句,如果结果为假,那么判断else if语句中的表达式2,如果表达式2为真值,那么执行语句2而不会执行后面else if的判断或者else语句。当所有的判断都不成立,也就是都为假值时,执行else后的语句块。例如:

上述代码的含义是:使用if语句判断变量iSelection的值是否为1,如果为1,则执行后面语句块中的内容,然后跳过后面的else if判断和else语句的执行;如果iSelection的值不为1,那么else if判断iSelection的值是否为2,如果值为2,则条件为真,执行后面紧跟着的语句块,执行完后跳过后面else if和else的操作;如果iSelection的值也不为2,那么接下来的else if语句判断iSelection是否等于数值3,如果等于,则执行后面语句块中的内容,否则执行else语句块中的内容。也就是说,当前面所有的判断都不成立(为假值)时,才执行else语句块中的内容。

二、if的嵌套形式

if语句中又包含一个或多个if语句,此种情况称为if语句的嵌套。一般形式如下:

示例:如果为星期六,就陪朋友逛街;如果为星期日,就陪家人在家。外面的else语句表示不为休息日时的相应操作

注意:在使用if语句嵌套时,应注意if与else的配对情况。else总是与其上面的最近的未配对的if进行配对。

三、条件运算符

在使用if语句时,可以通过判断表达式为“真”或“假”,从而执行相应的表达式。例如:

上面的代码可以用条件运算符“?:”来进行简化,例如:

条件运算符可对一个表达式的值的真假情况进行检验,然后根据检验结果返回另外两个表达式中的一个。条件运算符的一般形式如下:

在运算中,首先对第一个表达式的值进行检验。如果值为真,则返回第二个表达式的结果值;如果值为假,则返回第3个表达式的结果值。例如,上面使用条件运算符的代码,首先判断表达式a>b是否成立,成立则说明结果为真,否则为假。当为真时,将a的值赋给max变量;如果为假,则将b的值赋给max变量。

四、switch语句

1. switch语句的基本形式

switch语句是多分支选择语句。例如,如果只需要检验某一个整型变量的可能取值,那么可以用更简便的switch语句。switch语句的一般形式如下:

switch语句的执行流程图:

注意:switch语句检验的条件必须是一个整型表达式,这意味着其中也可以包含运算符和函数调用。而case语句检验的值必须是整型常量,即常量表达式或者常量运算。

示例

其中switch判断selection变量的值,利用case语句检验selection值的不同情况。假设selection的值为2,那么执行case为2时的情况,执行后跳出switch语句。如果selection的值不是case中所检验列出的情况,那么执行default中的语句。在每一个case或default语句后都有一个break关键字。break语句用于跳出switch结构,不再执行switch下面的代码。

注意1:在使用switch语句时,如果没有一个case语句后面的值能匹配switch语句的条件,就执行default语句后面的代码。其中,任意两个case语句都不能使用相同的常量值;每个switch结构只能有一个default语句,而且default可以省略

注意2:在case语句表示的条件后有一个冒号“:”

2. 多路开关模式的switch语句

将break去掉之后,会将符合检验条件后的所有语句都输出。利用这个特点,可以设计多路开关模式的switch语句,其形式如下:

通过上述可以得到,如果在case 2后不使用break语句,那么符合检验时与符合case 3检验时的效果是一样的。也就是说,使用多路开关模式使得多种检验条件使用一种解决方式。

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

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

相关文章

【BetterBench】2023年美赛辅导

通知 2023年美赛快开始啦,提醒大家比赛信息,比赛期间我会全称提供辅导,包括建模方案、实现代码! 可以参考往年所有建模比赛,本人开源的建模方案及实现代码 2020-2023年所有数学建模竞赛专栏 报名信息 1.辅助报名截止…

【异常】前端Babel提示 Support for the experimental syntax ‘jsx‘ isn‘t currently enabled

一、报错内容 17:33:41 - Building for production... 17:34:13 ERROR Failed to compile with 5 errors5:34:09 PM 17:34:13 17:34:13 error in ./src/layout/components/Sidebar/Item.vue?vue&typescript&langjs& 17:34:13 17:34:13 Syntax Error…

《流浪地球2》看不懂?根服务器、权威解析,专业科普来了

随着《流浪地球2》的上映,关于国产硬科幻电影的话题也火爆起来,片中各种脑洞大开,科技设定可圈可点,例如量子计算机、脑机接口、太空电梯等。从专业角度来看,作为国产科幻大片之光的《流浪地球2》为了保证真实性确实狠…

二叉平衡树 之 红黑树 (手动模拟实现)

目录 1、红黑树的概念 2、红黑树的性质 3、红黑树节点的定义 4、红黑树的插入 5、红黑树验证 代码汇总 6、红黑树的删除(了解) 7、红黑树的应用 8、红黑树 VS AVL树 1、红黑树的概念 红黑树,就是一种特殊的二叉搜索树,每个…

MySQL详解(四)——高级 2.0

性能分析 Explain 使用EXPLAIN关键字可以模拟优化器(不改变查询结果前提下,调整查询顺序,生成执行计划)执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈 功能&#x…

ECharts线性渐变色示例演示(2种渐变方式)

第003个点击查看专栏目录Echarts的渐变色采用了echarts.graphic.LinearGradient的方法,可以根据代码中的内容来看如何使用。线性渐变,多用于折线柱形图,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分…

PTA L1-025 正整数A+B(详解)

前言:本期是关于正整数AB的详解,内容包括四大模块:题目,代码实现,大致思路,代码解读,今天你c了吗? 题目: 题的目标很简单,就是求两个正整数A和B的和&#xf…

用户使用苹果AirTag来追踪宠物存在风险,苹果Find My功能用处广

苹果的 AirTag 不失为追踪宠物的一种便捷方式,这样宠物即便挣脱宠物圈或者其它方式丢失,都可以通过“Find My”方式追踪定位。正如《华尔街日报》所指出的,这种方式也存在 AirTag 被宠物吞食的风险。 AirTag 的直径为 1.26 英寸&#xff0c…

【Faster R-CNN】之 Resize_and_Padding 代码精读

【Faster R-CNN】之 Resize_and_Padding1、前言:2、resize_image_and_bbox1)先对图像做resize处理2)再对 bounding box 做resize处理3、padding_images代码1、前言: 在上一篇文章 【Faster R-CNN】之 Dataset and Dataloader 代码…

Linux网络:传输层之UDPTCP协议

文章目录一、端口号1.端口号范围划分2.常用命令二、UDP 协议1.格式2.特点3. UDP 的缓冲区4. UDP 使用注意事项5.基于 UDP 的应用层协议三、TCP 协议1.格式2.确认应答机制3.超时重传机制4.连接管理机制三次握手四次挥手5.滑动窗口6.流量控制7.拥塞控制8.延迟应答9.捎带应答10.面…

PyQt5利用Qt Designer制作一个可以拖动获取文件信息的页面

前言 本篇在讲什么 用pyqt5制作一个简单的程序,拖动文件或脚本可以读取文件信息 本篇适合什么 适合初学PyQt5的小白 本篇需要什么 对Python语法有简单认知 对Qt有简单认知 依赖Pycharm编辑器 本篇的特色 具有全流程的图文教学 重实践,轻理论&…

[Golang实战]整理Golang忽略的问题

整理Golang忽略的问题参考资料1.WaitGroup与GoRoutine的竞速2.Mutex互斥锁和RWMutex互斥读写锁3.poll,select,epoll4.何时栈和堆?5.GoRoutine合理使用6.GoRoutine优雅退出6.1data channel关闭通知退出6.2exit channel关闭通知退出6.3context超时或取消通知退出6.4WaitGroup/Er…

IPWorks EDI 2022.0.8381 for NET Crack

IPWorks EDI基于用于安全 EDI 通信(AS2、SFTP、OFTP、RosettaNet、MLLP 等)的领先 EDI-INT 协议,IPWorks EDI 库包含促进安全 EDI 消息传递以及 EDI 映射、翻译和验证(X12、 EDIFACT、HL7、TRADACOMS、VDA、XML 和 JSON&#xff0…

golang/安装

golang中文官网 https://golang.google.cn/ golang下载 安装 一路next 配置 配置值说明GOROOTD:\ProgramFiles\golanggolang安装目录PATHD:\ProgramFiles\golang\bingolang命令路径GO111MODULEon开启go.mod功能,go.mod是go官方依赖包管理工具GOPROXYhttps://go…

【FPGA笔记系列7】时序逻辑电路基础D触发器

时序逻辑电路 组合逻辑与时序逻辑电路的本质区别:时序逻辑电路的输出和前一时刻的状态有关,组合逻辑电路的输出只和当前的输入有关 与非门RS锁存器的缺陷:当SR从00变到11时,状态不稳定! 电路中小圈圈表示低电平有效! 透明锁存器 R=1当En=1时,Q=S当En=0时,后面为RS触发器…

使用git合并两个不同项目代码

使用git合并两个不同项目代码 前言, 这里解决的是两个不同的项目, 因为不同项目那必然是两个不同的git仓库 都是不同的git仓库了那就更不可能是相同的分支了(即使分支名相同) 至于为什么会有这种业务情况出现, 我也不知道, 反正先学干就完了 这里图形化界面演示用的是idea自带的…

人工智能时代八大类算法你了解吗?(包邮送书6本)

文章目录本文导读1. 关联规则分析2. 回归分析3. 分类分析4. 聚类分析5. 集成学习6. 自然语言处理7. 图像处理8. 深度学习9. 书籍推荐(包邮送书6本)本文导读 从零带你了解人工智能时代需要掌握的8大类算法,包括基础理论、关联规则分析、回归分…

Java-基础-4.IO流

一:为什么有IO流? 在显示生产中,我们的数据,都是不停的往过输入和输出,我们将这种模式称作为流。并且在输入和输出的过程中,我们包装了一些其他类。 二:什么是IO流? 1. 按照数据处理…

Linux学习之常用基本命令【1】

文章目录前言一 Linux系统简介二 补充知识Unix和Minix三 开关机命令四 系统目录结构五 树形显示文件目录结构六 目录管理6.0 目录操作常用命令6.1 ls(列出目录)【常用命令】6.2 cd(切换目录)6.3 pwd( 显示当前所在的目录 )6.4 mkdir(make directory创建目录&#xf…

Power BI折线图

如果要展现数据的趋势变化,折线图应该是不二之选,并且它更擅长于展现时间序列下的数据,根据折线斜率的不同展现变化的速率。 本文使用PowerBI Desktop来轻松生成一个折线图。 案例数据:2006-2015年各省市的三个产业的产值&#…