-8

假设我们使用and运算符使得

if (a.enable() && b.enable())

所以上面的陈述表明这两个陈述都需要为真才能继续

如果a.enable()return false 的情况如何,如果我们编写这样的语句

if (a.enable() && (b.enable() || c.enable()))

所以上面的这个陈述意味着a.enable()需要是真实的,并且从第二部分来看,要么是真实的,要么b.enable()c.enable()真实的。其中任何一个都需要为真才能继续,但如果a.enable()不为真,则条件失败,无需任何进一步检查。

这个对吗?

4

2 回答 2

10

是的,&&手段AND||手段OR。而且它们都是短路的,所以在以下情况下:

if (a.enable()  &&  b.enable())

b.enable()a.enable()如果返回 false,甚至不会被调用。

在以下情况下:

if (a.enable()  ||  b.enable())

b.enable()甚至不会被称为 afa.enable()返回 true。

这就是允许像这样的条件

if (s != null && s.equals(foo))

NullPointerException如果操作员没有短路,这将导致 a 。

于 2013-01-05T10:42:37.300 回答
-1
if (a.enable()  &&  b.enable())

只有当第一个条件为真时,才会调用第二个条件。

于 2016-05-18T19:31:21.533 回答