-7

这很令人困惑。
问题:给出每个表达式的值。

x && !x

这是真的还是假的?

4

5 回答 5

4
true && !true => false
false && !false => false

唯一的其他选择是

Boolean x = null;
x && !x => NullPointerException.
于 2014-02-12T17:08:25.037 回答
2

我不知道我是否理解您的问题,但我不知道该表达式将如何评估为真。如果将 x 设置为 True,则 !x 将评估为 False,反之亦然。只有当两个参数都为 True 时,逻辑 AND 运算才会评估为 True。由于永远不会出现这种情况,因此表达式将始终为 False。

仅当左侧为 False 时才会发生短路。那么就不需要评估右侧了。如果左侧为 True,则表达式永远不会短路。

于 2014-02-12T17:16:25.480 回答
0

总是false除了xnull

&&称为逻辑与运算符。如果两个操作数都是true,则条件变为true

于 2014-02-12T17:07:21.480 回答
0

你为什么不自己测试一下?

我看不出短路是如何适用的。要检查它是否为真,AND 运算符的两边都必须为真,并且在整个 exp 为真的情况下没有捷径。

于 2014-02-12T17:09:17.310 回答
0

从理论上讲,多线程可能存在一些问题,但仅在理论上

于 2014-02-12T18:00:40.157 回答