逻辑运算符 && 和 || 的短路特性
  joJp3k0vX7Vq 2023年11月02日 34 0



文章目录

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


逻辑运算符:

复习回顾


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

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

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


&&和||短路特性:

&&——逻辑与:

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

代码示例:

#include<stdio.h>
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;
}

运行结果:

逻辑运算符 && 和 || 的短路特性_不执行


||——逻辑或:

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

#include<stdio.h>
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;
}

运行结果:

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

企业笔试题

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

分析:

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

总结:

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

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

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

最后

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


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
joJp3k0vX7Vq