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

语言的条件语句

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

  • 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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 住宅HTTP代理:提升网络隐私与安全的新选择
  • 角色权限管理实现学习
  • 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树
  • 尚品汇-H5移动端整合系统(五十五)
  • How can I stream a response from LangChain‘s OpenAI using Flask API?
  • 面试经典150题——删除有序数组中的重复项
  • 某花顺爬虫逆向分析
  • 基于主从Reactor模型实现高并发服务器
  • 【后端】【nginx】nginx常用命令
  • 高校心理辅导系统:Spring Boot技术实现指南
  • 三十种编程语言庆祝【国庆节】!!!
  • flask的学习记录
  • Transformer模型-7- Decoder
  • 如何有效检测住宅IP真伪?
  • Lubuntu电源管理
  • Angular 4.x 动态创建组件
  • CODING 缺陷管理功能正式开始公测
  • js
  • Laravel核心解读--Facades
  • Leetcode 27 Remove Element
  • leetcode讲解--894. All Possible Full Binary Trees
  • React16时代,该用什么姿势写 React ?
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Vue 重置组件到初始状态
  • 分享一份非常强势的Android面试题
  • 警报:线上事故之CountDownLatch的威力
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何在GitHub上创建个人博客
  • 携程小程序初体验
  • 新手搭建网站的主要流程
  • MyCAT水平分库
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ‌移动管家手机智能控制汽车系统
  • # C++之functional库用法整理
  • $.proxy和$.extend
  • (06)金属布线——为半导体注入生命的连接
  • (09)Hive——CTE 公共表达式
  • (12)目标检测_SSD基于pytorch搭建代码
  • (备忘)Java Map 遍历
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (二)丶RabbitMQ的六大核心
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (学习日记)2024.01.09
  • (转)ObjectiveC 深浅拷贝学习
  • (转)Sublime Text3配置Lua运行环境
  • (转)关于多人操作数据的处理策略
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • ***测试-HTTP方法
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .net 7 上传文件踩坑
  • .NET Core 中插件式开发实现
  • .NET Micro Framework初体验(二)
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)