逻辑运算的短路特性(&&,||)

简介: 逻辑运算的短路特性(&&,||)

||运算

表达式A || 表达式B

表达式成真条件: 满足表达式A和表达式B任意一个为真

短路原则: 如果表达式A为真,就不执行和判断表达式B,因为表达式A为真已经符合表达式A || 表达式B为真的条件


代码示例

示例1:

#include<stdio.h>intmain()
{
inta=1,b=0;
if(a++||b++);   
printf("a:%d;b:%d",a,b);
return0;
}

if(a++||b++);运算时,a=1,即if(1||b++);表达式A已经为真,则触发短路原则,不执行表达式B

输出:

a:2;b:0

示例2:

#include<stdio.h>intmain()
{
inta=0,b=0;
if(a++||b++);
printf("a:%d;b:%d",a,b);
return0;
}

if(a++||b++);运算时,a=0,即if(0||b++);表达式A为假,不触发短路原则,执行表达式B,判断执行b++

输出:

a:1;b:1


&&运算

表达式A && 表达式B

表达式成真条件: 满足表达式A和表达式B都为真

短路原则: 如果表达式A为假,就不执行和判断表达式B,因为表达式A为假已经不符合表达式A && 表达式B为真的条件


代码样例

示例1:

#include<stdio.h>intmain()
{
inta=0,b=0;
if(a++&&b++);
printf("a:%d;b:%d",a,b);
return0;
}

if(a++&&b++);运算时,a=0,即if(0&&b++);表达式A为假,触发短路原则,不执行表达式B

输出:

a:1;b:0


示例2:

#include<stdio.h>intmain()
{
inta=1,b=0;
if(a++&&b++);
printf("a:%d;b:%d",a,b);
return0;
}

if(a++&&b++);运算时,a=1,即if(1&&b++);表达式A为真,不触发短路原则,执行表达式B,判断执行b++

输出:

a:2;b:1


总结

只要符合&&,||表达式成立的条件,就触发短路原则,省时又省力

目录
相关文章
|
6月前
什么是短路表达式?
什么是短路表达式?
106 1
|
6月前
|
JavaScript
短路表达式
短路表达式 短路表达式
55 0
|
6月前
|
Java
逻辑运算符和短路求值
逻辑运算符和短路求值
44 0
|
6月前
|
C++
C++程序中的逻辑运算
C++程序中的逻辑运算
72 1
|
5月前
|
C语言
C语言逻辑操作符的短路问题
C语言逻辑操作符的短路问题
|
5月前
数字逻辑与模拟电子技术-部分知识点(3)——数电部分-基本逻辑运算、复合逻辑运算
数字逻辑与模拟电子技术-部分知识点(3)——数电部分-基本逻辑运算、复合逻辑运算
84 0
|
6月前
|
C语言
逻辑操作符中的短路
C语言逻辑运算符按左到右顺序执行,先评估左侧表达式。如果左侧满足条件,右侧表达式不会求值,此现象称为短路。例如,`month &gt;= 3 && month &lt;= 5`,若month小于3,右侧不执行。同样,对于`month == 12 || month == 1 || month == 2`,若month为12,不需要检查其余条件。练习题中未提供具体代码,但给出了结果:a=2, b=3, c=3, d=5。
43 0
|
6月前
1-3 逻辑运算
1-3 逻辑运算
30 0
|
编译器
【运算符+逻辑控制】
【运算符+逻辑控制】
66 0
|
Go 开发者
短路与和短路或|学习笔记
快速学习短路与和短路或