理论教育 逻辑运算符的用法与区别

逻辑运算符的用法与区别

时间:2023-11-20 理论教育 版权反馈
【摘要】:关系运算符只能表示变量间的简单关系,对于一些比较复杂的关系,比如0≤x≤100,则需要逻辑运算符将几个不同的关系组合起来,形成较为复杂的逻辑表达式。表4-4 逻辑运算符不同操作数的逻辑运算结果如表4-5所示。表4-5 逻辑运算结果表逻辑运算符通常和关系运算符组成比较复杂的逻辑表达式,这种关系表达式或逻辑表达式在程序中通常作为程序的判断条件,因此也称为条件表达式。&&与&运算的区别。

逻辑运算符的用法与区别

关系运算符只能表示变量间的简单关系,对于一些比较复杂的关系,比如0≤x≤100,则需要逻辑运算符将几个不同的关系组合起来,形成较为复杂的逻辑表达式。逻辑运算符有以下几种,如表4-4所示。

表4-4 逻辑运算符

978-7-111-34450-6-Chapter04-20.jpg

不同操作数的逻辑运算结果如表4-5所示。

表4-5 逻辑运算结果表

978-7-111-34450-6-Chapter04-21.jpg

逻辑运算符通常和关系运算符组成比较复杂的逻辑表达式,这种关系表达式或逻辑表达式在程序中通常作为程序的判断条件,因此也称为条件表达式。

如0≤x≤100可以写成:

978-7-111-34450-6-Chapter04-22.jpg

例如:三角形的三条边a、b、c,当其中任意两条边之和都大于第三边时,则a,b,c可以组成一个三角形,其表达式为(a+b>c)&&(a+c>b)&&(b+c>a)。

【例4-4】输出条件表达式的结果。

978-7-111-34450-6-Chapter04-23.jpg

978-7-111-34450-6-Chapter04-24.jpg

程序运行结果:(www.daowen.com)

978-7-111-34450-6-Chapter04-25.jpg

程序中的条件表达式通过的“&&”运算符,表示只有三个关系表达式a+b>c、a+c>b和b+c>a同时都为true,结果才为true。

下面介绍关于&&和&,‖和|的短路问题。

“&&”和“&”,“‖”和“|”的功能是相同的,但在运算过程中有差别,其中“&&”和“‖”具有“短路”功能。所谓的短路功能,是指只有在需要时才计算运算符右边的值。如x&&y,当x的值为false时,就可以知道表达式的结果为false,因此右边的表达式y就不再计算,这就称为“短路”。而“&”运算符不管是什么样的结果,都会对两边的x和y进行计算,然后再得到返回值。如表达式(5>7)&&(13>2),因为“5>7”不成立,结果为false,所以表达式(5>7)&&(13>2)显然不会成立,因此不再对“13>2”进行比较运算。如果使用“&”运算符,则右边的“13>2”还要进行比较计算。

一般情况下,“&&”与“&”返回的结果是一样的,但有可能对一些结果有影响。如:

978-7-111-34450-6-Chapter04-26.jpg

由于y<10不成立,结果为false,第二个表达式x++<5的结果不影响整个表达式的值,由于&&的短路功能,右边的表达式不进行计算,因此x++操作没进行,所以x的值不变,保持为5。但是如果表达式换成:

978-7-111-34450-6-Chapter04-27.jpg

虽然y<10不成立,但由于&不具备短路功能,右边的表达式运算仍然要进行,x++操作被完成,这时x的值加1,发生了变化。因此,用“&&”和“&”会对运算结果产生不同的影响。

“‖”与“|”也类似。“‖”也具有短路功能。对于“‖”,如果左边的值为true,则返回值一定是true,因此右边的表达式就不用计算了,而“|”则不管左边表达式的结果是什么值,都要全部完成运算符左、右两边的值的计算,然后再给出结果值。

【例4-5】&&与&运算的区别。

978-7-111-34450-6-Chapter04-28.jpg

978-7-111-34450-6-Chapter04-29.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈