背景

使用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++中或运算符(||)执行的逻辑及顺序相关推荐

  1. sql server运算符_SQL Server执行计划中SELECT运算符的主要概念

    sql server运算符 One of the main responsibilities of a database administrator is query tuning and troub ...

  2. 8. Java 中的运算符 【连载 8】

    在前面的内容已经学会了如何定义变量和初始化变量.定义变量的目的就是为了操作数据.Java 语言中给我们提供了专门用来操作这些数据的代码符号,统称为"运算符". 按照操作符的用法,我 ...

  3. java与与短路与_Java中短路运算符与逻辑运算符示例详解

    1.逻辑运算符(部分) 符号 名称 && 短路与运算符 || 短路或运算符 & 与运算符 | 或运算符 对于理工科学习者来说,逻辑运算是较为基础的概念,通常会在大一的离散数学课 ...

  4. JS中相等运算符 == 隐式转换

    原代码片段: var a = [] console.log(a == 0)//true console.log(!a == 0)//true复制代码 ​ a == 0 相当于执行了 Number(a. ...

  5. c语言中的运算符及其含义_按位运算符及其在C语言中与Example一起使用

    c语言中的运算符及其含义 1)&(按位与) (1) & (bitwise AND)) It does AND on every bit of two numbers. The resu ...

  6. python中基本运算符_Python中的基本运算符及示例

    python中基本运算符 Operators are symbols which tells the interpreter to do a specific operation such as ar ...

  7. c++语言运算符的优先次序,C++中的运算符和运算符优先级总结

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本文将逐一介绍算术运 ...

  8. js中短路运算符 ||

    见过好多插件都这么用,感觉高大上... || 与 && 说到底也没啥,稍微懂点程序的,或者是搞过相关硬件编程的都会用到这玩意,就算是数学,中学你可能都用到过. 是不是不信? & ...

  9. 如何在SQL Server 2016中比较查询执行计划

    SQL Server 2016 provides great enhancement capability features for troubleshooting purposes. Some of ...

最新文章

  1. 硬盘温度70度正常吗_70多岁老年人原来血压160,现在130正常吗?医生为你分析实情...
  2. java中的权限修饰符_Java的权限修饰符的区别和用法总结
  3. 开源用户界面和布局的套件XiaoCai.WinformUI(美化用户界面利器)
  4. Tensorflow【实战Google深度学习框架】编程基础小漂亮总结
  5. Chrome 39-45
  6. PHP编译安装时常见错误解决办法,php编译常见错误
  7. impala 使用记录
  8. 英文教材《FPGA-Prototyping-By-Verilog-Examples》下载
  9. 基于centos的FasfDFS安装配置
  10. 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器
  11. VS 添加代理 -NUGET
  12. java基础8 构造函数和构造代码块
  13. 【idea插件开发】从0入门idea插件开发,idea插件开发教程,如何开发idea插件
  14. vscode的setting.json个人配置及个人常用插件
  15. Android Studio实现计数器,Android Studio实现简单计算器功能
  16. 复旦教授疯狂打车800次,发现大数据杀熟的秘密!附完整调研报告
  17. 安卓ASO怎么做?有哪些工具平台?安卓aso工具有哪些
  18. 【MATLAB】信号与系统 — 抽样函数
  19. Uncaught TypeError: $(...).modal is not a function
  20. 强化学习经典算法笔记(六):深度Q值网络 Deep Q Network

热门文章

  1. Maven学习(一) -- 安装Maven及Eclipse中配置Maven(转自--江湖小妞)
  2. 阿里云盘的几个搜索平台(自用)
  3. 卡牌游戏——吃面包(人机对决 和 机机对决)
  4. 我身家过亿!B站面试官被指炫富歧视北邮学生引爆热搜
  5. java毕业设计网上书店管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  6. 谷歌优化指南,谷歌SEO优化超详细新手教程
  7. “保姆级”车载CAN总线教程(一)-堪称全网“最细”系列
  8. C语言二值图的腐蚀膨胀及开闭运算
  9. 新“章鱼保罗”预测出了2018年世界杯冠军?!
  10. 电子科技大学 数学专业-功不唐捐,玉汝于成