逻辑操作符中的短路

简介: 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

目录
相关文章
|
7月前
什么是短路表达式?
什么是短路表达式?
114 1
|
7月前
|
JavaScript
短路表达式
短路表达式 短路表达式
65 0
|
7月前
|
Java
逻辑运算符和短路求值
逻辑运算符和短路求值
51 0
|
6月前
|
C语言
C语言逻辑操作符的短路问题
C语言逻辑操作符的短路问题
|
7月前
|
C语言
逻辑操作符
条件操作符(三目操作符)是C语言中唯一的三元运算符,形式为:表达式1 ? 表达式2 : 表达式3。如果表达式1为真,执行并返回表达式2的结果;否则,执行并返回表达式3的结果。示例和练习展示了如何使用此操作符来比较和输出两个数中的较大值。
41 1
|
7月前
|
C++
关系运算符及其优先次序:编程中的比较逻辑
在编程中,关系运算符是用于比较两个值之间关系的一种重要工具。它们帮助我们根据这些关系(如相等、不等、大于、小于等)来做出决策或执行特定的代码块。理解关系运算符及其优先次序对于编写正确和高效的代码至关重要。
150 0
|
7月前
|
C++
c++逻辑和杂项运算符
c++逻辑和杂项运算符
47 0
|
编译器
【运算符+逻辑控制】
【运算符+逻辑控制】
71 0
|
编译器 C语言
【C语言初阶】带你轻松玩转所有常用操作符(3)——关系操作符,逻辑操作符,条件操作符,逗号表达式
【C语言初阶】带你轻松玩转所有常用操作符(3)——关系操作符,逻辑操作符,条件操作符,逗号表达式
116 0
【C语言初阶】带你轻松玩转所有常用操作符(3)——关系操作符,逻辑操作符,条件操作符,逗号表达式