C++中或运算符(||)执行的逻辑及顺序
背景
使用C++刷题的时候,对于给出的答案代码有些疑惑
明明已经用或运算判断过左右子树是否为空
if( z->left == NULL || z->right == NULL )
为什么还要在下一行代码中,单独判断右子树是否为空
if ( z->right != NULL )
疑惑点
对于这个代码案例实在不理解
感觉第二次判断是不是有些重复了
或运算的执行逻辑
if ( A || B )return ;
elsereturn ;
或运算可以得知,如果A和B有一方为True,就执行if语句
如果A和B同时为false,才执行else语句
所以在我的潜意识里,进行或运算需要把A和B都判断完成后,才执行if语句
或运算的顺序
但是实际上不是这样的
实际上if判断条件里先判断A是否为True
如果A为True ⇒直接进入if语句
如果A为False ⇒ 再接着判断B ⇒ 如果B为True ⇒ 进入if语句
如果A为False ⇒ 再接着判断B ⇒ 如果B为False⇒ 进入else语句
换句话说
或运算里的顺序也可能影响着代码鲁棒性
总结
当使用或运算符时
或运算符左边为True,则不进行右边的判断。只要有一个为True,则整体为True
以此类推,多个或运算符依然适用
C++中或运算符(||)执行的逻辑及顺序相关推荐
- sql server运算符_SQL Server执行计划中SELECT运算符的主要概念
sql server运算符 One of the main responsibilities of a database administrator is query tuning and troub ...
- 8. Java 中的运算符 【连载 8】
在前面的内容已经学会了如何定义变量和初始化变量.定义变量的目的就是为了操作数据.Java 语言中给我们提供了专门用来操作这些数据的代码符号,统称为"运算符". 按照操作符的用法,我 ...
- java与与短路与_Java中短路运算符与逻辑运算符示例详解
1.逻辑运算符(部分) 符号 名称 && 短路与运算符 || 短路或运算符 & 与运算符 | 或运算符 对于理工科学习者来说,逻辑运算是较为基础的概念,通常会在大一的离散数学课 ...
- JS中相等运算符 == 隐式转换
原代码片段: var a = [] console.log(a == 0)//true console.log(!a == 0)//true复制代码 a == 0 相当于执行了 Number(a. ...
- c语言中的运算符及其含义_按位运算符及其在C语言中与Example一起使用
c语言中的运算符及其含义 1)&(按位与) (1) & (bitwise AND)) It does AND on every bit of two numbers. The resu ...
- python中基本运算符_Python中的基本运算符及示例
python中基本运算符 Operators are symbols which tells the interpreter to do a specific operation such as ar ...
- c++语言运算符的优先次序,C++中的运算符和运算符优先级总结
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本文将逐一介绍算术运 ...
- js中短路运算符 ||
见过好多插件都这么用,感觉高大上... || 与 && 说到底也没啥,稍微懂点程序的,或者是搞过相关硬件编程的都会用到这玩意,就算是数学,中学你可能都用到过. 是不是不信? & ...
- 如何在SQL Server 2016中比较查询执行计划
SQL Server 2016 provides great enhancement capability features for troubleshooting purposes. Some of ...
最新文章
- 硬盘温度70度正常吗_70多岁老年人原来血压160,现在130正常吗?医生为你分析实情...
- java中的权限修饰符_Java的权限修饰符的区别和用法总结
- 开源用户界面和布局的套件XiaoCai.WinformUI(美化用户界面利器)
- Tensorflow【实战Google深度学习框架】编程基础小漂亮总结
- Chrome 39-45
- PHP编译安装时常见错误解决办法,php编译常见错误
- impala 使用记录
- 英文教材《FPGA-Prototyping-By-Verilog-Examples》下载
- 基于centos的FasfDFS安装配置
- 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器
- VS 添加代理 -NUGET
- java基础8 构造函数和构造代码块
- 【idea插件开发】从0入门idea插件开发,idea插件开发教程,如何开发idea插件
- vscode的setting.json个人配置及个人常用插件
- Android Studio实现计数器,Android Studio实现简单计算器功能
- 复旦教授疯狂打车800次,发现大数据杀熟的秘密!附完整调研报告
- 安卓ASO怎么做?有哪些工具平台?安卓aso工具有哪些
- 【MATLAB】信号与系统 — 抽样函数
- Uncaught TypeError: $(...).modal is not a function
- 强化学习经典算法笔记(六):深度Q值网络 Deep Q Network
热门文章
- Maven学习(一) -- 安装Maven及Eclipse中配置Maven(转自--江湖小妞)
- 阿里云盘的几个搜索平台(自用)
- 卡牌游戏——吃面包(人机对决 和 机机对决)
- 我身家过亿!B站面试官被指炫富歧视北邮学生引爆热搜
- java毕业设计网上书店管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
- 谷歌优化指南,谷歌SEO优化超详细新手教程
- “保姆级”车载CAN总线教程(一)-堪称全网“最细”系列
- C语言二值图的腐蚀膨胀及开闭运算
- 新“章鱼保罗”预测出了2018年世界杯冠军?!
- 电子科技大学 数学专业-功不唐捐,玉汝于成