这样,X = = Y会先评估,然后逻辑不将翻转布尔结果。
规则:如果逻辑不打算对其他经营者的运作,其他运营商和他们的运算需要用括号。
逻辑不是简单的应用,如(!B值)不需要括号因为优先不起作用。
逻辑或
逻辑或运算符用于测试是否两个条件都是真的。如果左操作数的值为true,或右操作数的值为true,逻辑或操作符返回true。如果两个操作数都是真的,那么逻辑或将返回真好。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include <iostream>
int
main()
{
using
namespace
std;
cout <<
"Enter a number: "
;
int
nValue;
cin >> nValue;
if
(nValue == 0 || nValue == 1)
cout <<
"You picked 0 or 1"
<< endl;
else
cout <<
"You did not pick 0 or 1"
<< endl;
return
0;
}
|
在这种情况下,我们使用逻辑或操作符来测试是否左侧条件(值= = 0)或右条件(值= = 1)是真实的。如果(或两者)是真实的,逻辑或运算符的值为true,这意味着如果语句执行。如果都不是真实的,逻辑或运算符的计算结果为false,这意味着其他语句执行。
你可以串在一起的许多逻辑或陈述:
短路求值
为了使逻辑和返回true,两个操作数必须是真实的。如果第一个操作数为false,逻辑和知道必须假不管第二个操作数评估为TRUE或FALSE返回。在这种情况下,逻辑与操作符将继续和立即返回没有评估的第二个操作数!这是被称为短路求值,并做了初步优化的目的。
同样,如果第一个操作数的逻辑或是真实的,那么整个或条件已评估为true,第二个操作数不需要评估。
短路计算提出了另一个机会显示为什么引起的副作用,不应该被用在复合表达式的运算符。考虑下面的代码片段: