逻辑运算符 && 和 || 的短路特性

在这里插入图片描述

  • ⛩️博主主页:@威化小餅干
  • 系列专栏:【C语言】藏宝图
  • 绳锯⽊断,⽔滴⽯穿!一个编程爱好者的学习记录!

文章目录

  • 逻辑运算符:
    • 复习回顾
  • &&和||短路特性:
  • 企业笔试题
  • 总结:
  • 最后

逻辑运算符:

复习回顾


&&——逻辑与:同真为真,一假则假。

||——逻辑或:一真为真,同假则假。

!——逻辑或:取反,真为假,假为真。


&&和||短路特性:

&&——逻辑与:

对于&&来说,当第一个条件已经为false时,则表达结果一定为false,此时不再执行第二个条件。例如:a&&b 当a条件为false的时候,则b条件被短路,不再执行b条件。

代码示例:

#include
int main()
{
	int a = 0;
	int b = 2;
	int c;
	
	c = a && ++b;//因为a为false,所以后面的++b条件被短路,不执行,则b还是为2
	
	printf("%d\n%d\n%d\n",a,b,c);
	
	return 0;
}

运行结果:
逻辑运算符 && 和 || 的短路特性_第1张图片


||——逻辑或:

对于||来说,当第一个条件已经为true时,则表达结果一定为true,此时不再执行第二个条件。例如:a||b 当a条件为true的时候,则b条件被短路,不再执行b条件。

#include
int main()
{
	int a=1;
	int b=2;
	int c;
	
	c=a||++b;//因为a为true,所以后面的++b条件被短路,不执行,则b还是为2
	
	printf("%d\n%d\n%d\n",a,b,c);
	
	return 0;
}

运行结果:
逻辑运算符 && 和 || 的短路特性_第2张图片

企业笔试题

逻辑运算符 && 和 || 的短路特性_第3张图片

分析:

  • 第一个i式子中:a++为前置++,可以理解成是先a,后++,a为0,为假。&& 一假全假,则后面短路不执行!
  • 第二个i式子中:|| 一真全真,a为0,为假,继续执行,++b=3,为真,则后面短路不执行!

总结:

&&——逻辑与:同真为真,一假则假->(短路特性)

||——逻辑或:一真为真->(短路特性),同假则假。

!——逻辑或:取反,真为假,假为真。

最后

创作不易,还请各位小伙伴多多点赞关注收藏⭐

你可能感兴趣的:(c++,开发语言)