逻辑操作符中的短路

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

目录
相关文章
|
6月前
什么是短路表达式?
什么是短路表达式?
92 1
|
6月前
|
C语言 C++
操作符的属性:优先级、结合性(缺表达式求值)
操作符的属性:优先级、结合性(缺表达式求值)
41 0
|
6月前
|
JavaScript
短路表达式
短路表达式 短路表达式
53 0
|
6月前
|
Java
逻辑运算符和短路求值
逻辑运算符和短路求值
43 0
|
5月前
|
C语言
C语言逻辑操作符的短路问题
C语言逻辑操作符的短路问题
|
6月前
|
C语言
逻辑操作符
条件操作符(三目操作符)是C语言中唯一的三元运算符,形式为:表达式1 ? 表达式2 : 表达式3。如果表达式1为真,执行并返回表达式2的结果;否则,执行并返回表达式3的结果。示例和练习展示了如何使用此操作符来比较和输出两个数中的较大值。
33 1
|
6月前
|
JavaScript 前端开发 Java
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
|
12月前
|
编译器
【运算符+逻辑控制】
【运算符+逻辑控制】
64 0
关于短路操作
在逻辑与&& 或者 逻辑或 || 的运算中,表达式1满足要求,表达式2不再运算的操作即为短路操作
45 0