这很令人困惑。
问题:给出每个表达式的值。
x && !x
这是真的还是假的?
true && !true => false
false && !false => false
唯一的其他选择是
Boolean x = null;
x && !x => NullPointerException.
我不知道我是否理解您的问题,但我不知道该表达式将如何评估为真。如果将 x 设置为 True,则 !x 将评估为 False,反之亦然。只有当两个参数都为 True 时,逻辑 AND 运算才会评估为 True。由于永远不会出现这种情况,因此表达式将始终为 False。
仅当左侧为 False 时才会发生短路。那么就不需要评估右侧了。如果左侧为 True,则表达式永远不会短路。
总是false
除了x
是null
&&
称为逻辑与运算符。如果两个操作数都是true
,则条件变为true
。
你为什么不自己测试一下?
我看不出短路是如何适用的。要检查它是否为真,AND 运算符的两边都必须为真,并且在整个 exp 为真的情况下没有捷径。
从理论上讲,多线程可能存在一些问题,但仅在理论上