【发布时间】:2020-01-26 13:32:33
【问题描述】:
以下布尔表达式将被评估为什么值?
!(false) && (5 > 4)
我会认为它被评估为假,有人可以解释发生了什么使它成为真的吗?
【问题讨论】:
-
!(false)是真的 -
而
(5 > 4)也是true。 -
您可以运行一个程序来找出答案。目前尚不清楚您为什么不能这样做。
以下布尔表达式将被评估为什么值?
!(false) && (5 > 4)
我会认为它被评估为假,有人可以解释发生了什么使它成为真的吗?
【问题讨论】:
!(false) 是真的
(5 > 4)也是true。
您正在使用&& 运算符。这意味着您的第二个条件将是
考虑。
! 表示否定。 false 的否定给出true。
5 > 4 始终为true。
所以,这里true && true 给出true
【讨论】:
!(false) && (5 > 4)
!(false) = true //because of !(not) operator
(5 > 4) = true
so
true && true = true
【讨论】:
我会认为它被评估为假,有人可以解释发生了什么使它成为真的吗?
&& 计算其左侧操作数,如果该值为 false,则结果为 false;否则,它评估其右手操作数并将该结果作为其结果。以
!(false) && (5 > 4)
!(false) 是 true,所以是:
true && (5 > 4)
由于true 不为假,&& 计算右侧操作数:
(5 > 4)
(5 > 4) 也是true,所以&& 结果是true。
【讨论】: