逻辑操作符中的短路

简介: C语言逻辑运算符按左到右顺序执行,先评估左侧表达式。如果左侧满足条件,右侧表达式不会求值,此现象称为短路。例如,`month >= 3 && month <= 5`,若month小于3,右侧不执行。同样,对于`month == 12 || month == 1 || month == 2`,若month为12,不需要检查其余条件。练习题中未提供具体代码,但给出了结果:a=2, b=3, c=3, d=5。

C语言逻辑运算符还有一个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的


如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值,这种情况称为短路


对于&&操作符:


if(month >= 3 && <= 5)


当左边表达式的结果为0(即为假)时,即使右边表达式不执行,整个表达式的结果也是0



对于||操作符


if(month == 12 || month ==1 || month == 2)


如果month=12,则不用再判断month是否等于1或者2,整个表达式的结果也是1


所以||操作符的左操作数的结果不为0时,就无需执行右操作数


练习:阅读代码,计算代码输出的结果



结果为:a=2 b=3 c=3 d=5

目录
相关文章
|
缓存 JavaScript 前端开发
同步加载、异步加载、延迟加载、预加载的区别
同步加载、异步加载、延迟加载、预加载的区别
421 0
|
机器学习/深度学习 人工智能 算法
【PyTorch深度强化学习】TD3算法(双延迟-确定策略梯度算法)的讲解及实战(超详细 附源码)
【PyTorch深度强化学习】TD3算法(双延迟-确定策略梯度算法)的讲解及实战(超详细 附源码)
2798 1
|
编译器
经典面试题:变量的声明和定义有什么区别
在编程领域,变量的“声明”与“定义”是经典面试题之一。声明告诉编译器一个变量的存在,但不分配内存,通常包含变量类型和名称;而定义则为变量分配内存空间,一个变量必须至少被定义一次。简而言之,声明是告知变量形式,定义则是实际创建变量并准备使用。
|
存储 算法 搜索推荐
探索常见数据结构:数组、链表、栈、队列、树和图
探索常见数据结构:数组、链表、栈、队列、树和图
381 64
|
JavaScript 前端开发 Java
IT入门知识第六部分《后端开发》(6/10)
IT入门知识第六部分《后端开发》(6/10)
1191 0
|
IDE 测试技术 项目管理
集成开发环境(IDE)的使用:提升Visual Basic开发效率的工具和技巧
【4月更文挑战第27天】本文探讨了如何使用Visual Basic IDE提升开发效率,包括理解IDE组件、利用代码编辑器的智能功能、通过界面设计器设计GUI、使用调试和测试工具、有效管理项目与版本控制、掌握快捷键和宏、定制IDE以及利用学习资源。通过充分利用这些工具和技巧,开发者能更快地编写高质量代码,高效管理项目,从而提升整体开发效率。随着IDE的持续发展,开发者应不断学习新特性以适应进步。
372 1
|
存储 缓存 开发工具
初识Unity——unity的安装以及工程介绍(安装unity hub、版本选择、中文设置、安装编辑器、Assets文件、Library 文件、[ProjectName].sln 文件)
初识Unity——unity的安装以及工程介绍(安装unity hub、版本选择、中文设置、安装编辑器、Assets文件、Library 文件、[ProjectName].sln 文件)
2292 0
|
程序员 编译器
计算机语言分为三种:机器语言、汇编语言和高级语言
计算机语言分为三种:机器语言、汇编语言和高级语言
2804 0
|
Dart 前端开发 开发工具
【Flutter前端技术开发专栏】探索Flutter的世界
【4月更文挑战第30天】Flutter是谷歌的UI框架,用于构建高性能、跨平台的iOS和Android应用。它使用Dart语言,提供丰富的预置组件,支持热重载,确保跨平台一致性。Flutter的亮点包括高性能渲染、丰富的组件库、国际化的支持。开发者可通过安装SDK和IDE插件开始开发,熟悉Widget、StatefulWidget、StatelessWidget等核心概念。其潜力和前景在移动应用开发领域备受关注,丰富的生态系统包含第三方库和工具,如网络请求和状态管理。学习Flutter对前端开发者极具价值。
217 0
【Flutter前端技术开发专栏】探索Flutter的世界
|
JSON API 数据格式
Python测试架构requests-mock
【4月更文挑战第19天】
248 1