码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C++中或运算符(||)执行的逻辑及顺序


    背景

    使用C++刷题的时候,对于给出的答案代码有些疑惑

    明明已经用或运算判断过左右子树是否为空

    if( z->left == NULL || z->right == NULL )
    
    • 1

    为什么还要在下一行代码中,单独判断右子树是否为空

    if ( z->right != NULL )
    
    • 1

    疑惑点

    对于这个代码案例实在不理解

    感觉第二次判断是不是有些重复了

    或运算的执行逻辑

    if ( A || B )
    	return ;
    else
    	return ;
    
    • 1
    • 2
    • 3
    • 4

    或运算可以得知,如果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

    以此类推,多个或运算符依然适用

  • 相关阅读:
    vue 请求php接口 header 传自定义参数 提示cors 跨域问题
    利用FPGA和CPLD数字逻辑实现模数转换器
    都说Redux不支持非序列化数据 简单讲解非序列化数据概念 并举例说明
    nginx的location的优先级和匹配方式
    STP内容扩充 PVST MSTP 流量负载分担
    2022年Java面试题最新整理,附白话答案
    从零开发短视频电商 分布式锁-基于数据库实现
    nmap使用指南
    【计算机取证篇】Windows禁用驱动程序签名教程
    DSPE-PEG-Hydrazide,DSPE-PEG-HZ,磷脂-聚乙二醇-酰肼可增强稳定性
  • 原文地址:https://blog.csdn.net/weixin_41377182/article/details/126885804
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号