if else语句需要注意的问题

简介: if else语句需要注意的问题

image.png

if else语句是一种分支结构,当条件满足时,有“if语句”和“else语句”两条分支。表达式的值在逻辑上只有真和假,故 if 和 else 在执行流程上是互斥的,执行且只能执行两者中的一个。


标准格式:

if(条件表达式)
{
复合语句; 
} else{
复合语句;  
}

条件表达式可以是关系表达式、逻辑表达式、算术表达式或混合表达式等。

当if 语句体或 else 语句为一条简单语句时,可以省略 {}

if(条件表达式)
简单语句; 
else简单语句; 

if(条件表达式) 符合条件执行语句; 
else不符合条件执行语句; 

注:如果省略则默认只执行第一复合语句的第一条指令

if-else

if-else嵌套

20210306202140.png

  • 配对的 if-else 语句可以看成一条简单语句。
  • 一条 if 语句也可以看成一条简单语句。
  • 在嵌套结构中会有多个“if”与多个“else”关键词,每一个“else”都应有对应的“if”相配对。
  • 原则:“else”与其前面最近的还未配对的“if”相配对。

例题

20210306202140.png

我们恢复一下完整的代码

完整的代码

intx=2,y=-1,z=2;
if(x<y){
if(y<0){
z=0;
            }else{
z+=1;
            }
        }
printf("%d\n",z);

这题需要注意的是:

  1. 配对的 if-else 语句可以看成一条简单语句。
  2. 当if 语句体或 else 语句为一条简单语句时,可以省略 {}
  3. 如果省略 {} 则默认只执行第一复合语句的第一条指令
  4. “else”与其前面最近的还未配对的“if”相配对。


对比两组代码,我们可以清楚的知道,并未执行x<y时的复合语句,因此z并未改变,还是2

目录
相关文章
|
存储 Kubernetes Linux
helm 简介及基本使用
helm 简介及基本使用
3696 0
helm 简介及基本使用
|
3月前
|
存储 新零售 安全
阿里云企业网盘收费标准:存储空间、用户数配置价格及功能使用全解析
阿里云盘企业版,500GB仅169元/年,支持协同办公、360°权限管理、智能文件检索、多重安全防护及极速传输,高性价比助力企业高效协作,适用于多行业数字化办公需求。
|
数据可视化 前端开发 JavaScript
可视化工具D3.js
可视化工具D3.js
499 2
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
机器学习/深度学习 算法 搜索推荐
"震撼揭秘!阿里云AIGC智能图像识别:黑科技如何颠覆你的视界,让图像识别秒变超能力,生活工作全面革新!"
【8月更文挑战第12天】在数字化浪潮中,图像数据激增,高效准确处理成为关键。阿里云智能图像识别服务(AIGC)应运而生,依托深度学习与计算机视觉技术,实现图像特征精确提取与理解。通过大规模数据训练及优化算法,AIGC在图像分类、目标检测等方面表现出色。其应用场景广泛,从电商的商品识别到内容安全审核,再到智能交通和医疗影像分析,均展现出巨大潜力。示例代码展示了AIGC图像生成的基本流程,彰显其技术实力与未来前景。
496 1
|
关系型数据库 MySQL
启动mysql时报错"/etc/init.d/mysqld: Permission denied"
请谨慎操作,并根据你的具体情况选择适当的解决方法。如果问题仍然存在,你可能需要查看MySQL的文档或寻求进一步的支持。
1007 1
|
Kubernetes Cloud Native Apache
[AIGC] 主流工作流引擎对比与适用场景介绍
[AIGC] 主流工作流引擎对比与适用场景介绍
878 0
|
存储 安全 网络安全
如何取安全的密码?
如何取安全的密码?
259 0
|
存储 数据处理 Python
使用Python批量合并Excel文件的所有Sheet数据
使用Python批量合并Excel文件的所有Sheet数据
711 0
|
Web App开发 JavaScript 前端开发
Golang+chromedp+goquery 简单取动态数据
Golang+chromedp+goquery 简单取动态数据
432 1