我是C ++的初学者。为什么当我写出这些代码时,我却返回“ 1”?
C
它写出“ 1”,与“ true”等效。为什么它会返回true而不是false?如何确定该陈述是否正确?
答案 0 :(得分:10)
它如何确定该陈述是否正确?
布尔运算符遵循布尔代数的规则。
!
运算符( not )对应于逻辑否定。如果操作数为true,则结果为false;如果操作数为false,则结果为true。
||
(包含或)运算符对应于逻辑(包含)析取。仅当两个操作数都为假时,结果才为假。否则结果为true。
输出为1,因为标准输出流在插入真布尔符号时会产生字符1(除非设置了std::ios_base::boolalpha
格式标志)。
答案 1 :(得分:7)
此:
cout << (false||(!false));
评估为:
cout << (false||(true));
评估为:
cout << true;
由于false || true
是true
。至少按照惯例,true
的C ++表示形式通常是1
,而不是0
的{{1}}。
答案 2 :(得分:5)
因为false
或false
不是true
。
答案 3 :(得分:2)
考虑一下您的if
声明...
您的测试值是boolean
,所以它是true
或false
。现在看看您的if
:
if (false || (!false))
您在说:
如果满足以下条件,则测试结果为真
:
- 测试值为
false
或- 测试值为不
false
(因此为true
)。
所以无论哪种方式,if
都会返回true
是true
还是false
。