语言的条件语句

万事都有第二种可能,如果不是,那一定有第三种可能。条件语句一般分为如下三种:

  • if/else
  • 条件表达式 a ? b : c
  • switch多分支选择

条件语句形态

大部分编程语言用括号表示条件,单条或复合语句作为条件执行。

  • 最早Fortran就有if语句概念,不过当然都是用大写字母IF ... THEN ... END IF.
  • Python定义了一套缩进规则,条件左右不需要括号(Go也吸收这种便捷方式),缩进后的语句作为执行,当然也不需要大括号或者其他形式包起来。
  • Shell语言在中括号内写条件,要求中括号前后需要有空格,执行语句不需要大括号,自然写出即可。
  • Perl要求if或else之后一定有大括号,不管是否是单条语句。

嵌套的条件语句

  • 万事都有N种可能,每种可能还有M种可能。
  • 嵌套if/else可能造成混乱,究竟哪个if对着哪个else? 最简单的原则就是else总跟在前面跟它最近且未与其他else匹配的if.
    • 对于C/C++/Java等编程语言产生混乱的另外一个原因是它们更加自由,编译器通常忽略空格和缩进,且条件单条语句不需要用{}包裹。语言标准没有明确,就要求代码规范约束程序员。
    • 而对于Perl/Algol而言,不存在这种情形,语法要求如果有if嵌套,一定要加复合语句。对强制要求有if/then/else/end的语言,也不存在if/else嵌套混乱的问题。

条件语句的本质

从汇编语言的角度,条件语句对应于汇编代码cmp/jmp/j*之类的比较和跳转指令。


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

相关推荐
学长毕设29 分钟前
基于SpringBoot的景点管理系统-附源码
java·spring boot·后端
Severus_black31 分钟前
【C++初阶】Stack、Queue算法题大练兵!
c语言·c++·算法·stl
sxlishaobin1 小时前
Maven Setting详解
java·学习·maven
知守观1 小时前
一个方法两个触发口:反编译 XXL-Job 后,我看清了 inner/job 子包的裸奔现状
java·spring boot·微服务
用户3126874877201 小时前
CompletableFuture 链式编排:异步编程的优雅解法
java
瑞雪兆丰年兮2 小时前
JavaWeb-day14-SpringBootWeb原理篇
java·开发语言·spring boot·spring·bean·mybatis·javaweb
得物技术2 小时前
压测AI Agent 治理与评测调优实践
程序员·架构·测试
神仙别闹2 小时前
基于 Java GUI 贪心策略直接搜索算法和极大极小博弈树算法的智能人机博弈五子棋游戏
java·毕业设计·gui·贪心策略·极大极小博弈树
Flynn Liang3 小时前
RAG 评估体系:黄金集、检索指标与 LLM-as-Judge 落地
java·langchain·rag·评估·langchain4j·检索指标
SomeOtherTime3 小时前
Rust生命周期介绍(AI回答)
开发语言·后端·rust