C语言——分支语句(if,switch)

这篇博客,主要想从理解分支语句,语句的执行过程和书写以及一些注意事项来谈谈分支语句

一,我们如何理解分支语句是什么?

分支语句又名:“条件判断语句”

其逻辑本质就是:若满足,则执行

譬如,if语句的很多种形式:

有单 if 语句;有 if...else 语句;还有 if...else if 语句,下面我们来看看他们的流程图

单if语句:

if...else语句:

if...else if语句:

这里先对if...else语句里的else做出解释:这里的else暗指的条件是:if语句的条件以外的所有条件

当我们再带着“若满足,则执行”的本质去看看流程图:会发现:是不是当“表达式”为真了(条件满足了)以后,箭头就指向执行语句,如果是(不满足)则跳过语句或进行对下一个条件的判断?

这里,我们不妨把switch语句也提上来:

当表达式输出值满足En时,则执行语句n,这就是若满足,则执行

对分支语句有了一定的认识后,我们来看看具体的书写方法和注意事项:

if语句:

            单if用于:需要对单一情况进行区分的时候

      if...else用于:两种情况满足:不是......就(则)......

if...else if...用于:对多种情况的分类且它们是完全排斥的,可以有无限多个else if...(主要看需求)

具体格式:

注意:

1,一个if只能控制一个程序块

      当if要执行多条语句时应该用{}将多条语句括在一起,else if...\else...   同理

2,else总是与最接近的if匹配

现在给出一个代码请读着思考会输出什么?

答案是:什么都不输出

这里涉及就涉及到了:注意2:else总是与最接近的if匹配

因为这里的else是与if(b == 2)匹配的,所以这里的 if(b == 2)...else... 其实是一整个嵌套(嵌套在第4点)在第一个if(a == 1)语句中的程序块,相当于:

当不满足a == 1时,程序就不会执行第一个if里面的语句,所以最后什么也没输出。

3,书写:if语句的表达式必须在小括号()内,并且if()后是不加标点符号的(如 “;”)

4,条件语句是可以嵌套使用的,如:

switch语句:

具体格式:

注意:

1,“break”:break的作用是跳出当前的switch语句,若没有break的限制,就还会执行下面的case语句,直到switch语句结束(break的有无也需要根据实际需求而定)

2,书写:case和后面的数字之间必须有空格

3,default:当输入结果都不满足时,switch就会执行default语句

4,同样switch语句也可以嵌套if语句,if也可以嵌套switch语句,根据个人需求(条件的限制)进行合理安排就好

以上就是我这次分享的全部内容了,若有不足和错误欢迎指出,感谢大家的观看,我会继续努力的,希望和大家一起进步!

       “我走的很慢,但我从不后退”——林肯

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

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

相关文章

“创新视频封面设计,轻松提取其他视频第一帧,让你的视频更具吸引力!“

你是否曾经为如何为自己的视频定制封面而烦恼?现在,我们为你推荐一款全新的视频封面提取工具,让你的视频封面设计更加简单、快捷! 首先,运行媒体梦工厂,在板块栏路选择“视频封面”板块。并点击“提取封面…

图片去水印怎么弄?手把手教你几个去水印方法

在生活中,我们常常会遇到一些心仪的图片,然而这些图片往往带有水印或是不必要的杂物,如路过的行人、标志、商标等元素。这些元素通常位于图片的边角或中心,严重破坏了图片的整体美感,影响了我们的视觉体验。为了解决这…

3dMax导出glft和glb格式模型插件Max2Babylon教程

为了满足Autodesk提供自己的导出管道之前的迫切需要,Babylon.js导出器可用于3dMax。导出器可以将3dMax场景导出为.glTF文件、.glb文件或.babylon文件。 【适用版本】 3dMax2015 - 2024 【安装方法】 1.选择和自己电脑中3dMax所对应的插件版本,解压缩。…

J-Flash工具的使用---擦除、烧录及校验

文章目录 前言一、打开J-Flash工具二、使用步骤1.创建工程,选择MCU,配置端口2.打开要烧录的文件3.连接J-Link4.擦除Flash5. 烧录固件 总结 前言 不使用IDE(如keil、Iar)如何来烧录固件。当我们的程序需要保密,不需要被…

深圳市东星制冷机电受邀莅临2024国际生物发酵展,济南与您相约

深圳市东星制冷机电有限公司受邀莅临2024国际生物发酵展,济南3月5-7日与您相约! 展位号:1号馆A53 深圳市东星制冷机电有限公司,(东星集团)是一家专业生产制冷设备的外商独资大型集团企业,拥有30多年的生产…

5.如何利用ORBSLAM3生成可用于机器人/无人机导航的二维/三维栅格地图--以octomap为例

1 octomap的安装及官方文档 这里我们用ROS自带的安装方式即可: sudo apt install ros-melodic-octomap-msgs ros-melodic-octomap-ros ros-melodic- octomap-rviz-plugins ros-melodic-octomap-server 如上图就是安装成功了: 如果安装失败了,…

谨慎Apache-Zookeeper-3.5.5以后在CentOS7.X安装的坑

目录 前言 一、现场还原 二、问题诊断 三、问题原因 总结 前言 最近由于项目需要,在服务器上需要搭建Hbase完全分布式集群环境。开发环境,采用的是最小节点的方式进行搭建(即3个节点的模式)。资源环境列表如下: 序号…

ISCTF2023 部分wp

学一年了还在入门( web where_is_the_flag ISCTF{41631519-1c64-40f6-8dbb-27877a184e74} 圣杯战争 <?php // highlight_file(__FILE__); // error_reporting(0);class artifact{public $excalibuer;public $arrow;public function __toString(){echo "为Saber选择…

C++初阶(十三)vector

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、vector的介绍二、vector的模拟实现1、模拟实现2、测试结果 一、vector的介绍 vector的文…

kettle入门教程

一、概述 1.什么是kettle Kettle是一款开源的ETL(Extract-Transform-Load)工具&#xff0c;纯java编写&#xff0c;可以在Window、Linux、Unix上运行&#xff0c;绿色无需安装&#xff0c;数据抽取高效稳定。 2.kettle工程存储方式 &#xff08;1&#xff09;以XML形式存储 …

手敲myarraylist,深入了解其运行逻辑

1、自定义MyArrayList类 该类里面基本有两个属性&#xff0c;一个是用来存放数据的数组&#xff0c;另外一个是用来描述已经存放数据的数量。同时设置arraylist表的默认长度为10&#xff1b;代码如下&#xff1a; public class MyArrayList {private int[] elem;private int u…

Echarts大屏-数据可视化

使用原生htmljavascript实现大屏展示,较为麻烦的为边框的四个小角使用伪元素生成,其余echarts使用如下快速上手 - Handbook - Apache ECharts 效果如下: