&&和| |的短路在java中是如何工作的?
假设我们使用and运算符,这样&&和| |的短路在java中是如何工作的?,java,Java,假设我们使用and运算符,这样 if (a.enable() && b.enable()) 因此,上述语句表明,这两个语句都必须为true才能继续 如果a.enable返回false,并且如果我们编写的语句 if (a.enable() && (b.enable() || c.enable())) 因此,上述语句意味着a.enable需要为true,从第二部分来看,b.enable或c.enable需要为true。其中任何一个都需要为true才能继续,但如果a
if (a.enable() && b.enable())
因此,上述语句表明,这两个语句都必须为true才能继续
如果a.enable返回false,并且如果我们编写的语句
if (a.enable() && (b.enable() || c.enable()))
因此,上述语句意味着a.enable需要为true,从第二部分来看,b.enable或c.enable需要为true。其中任何一个都需要为true才能继续,但如果a.enable不为true,则条件将失败,无需进一步检查
这是正确的吗?是的,&&表示和,| |表示或。它们都短路,所以在以下情况下:
if (a.enable() && b.enable())
if (a.enable() || b.enable())
b、 如果a.enable返回false,则甚至不会调用enable
在下列情况下:
if (a.enable() && b.enable())
if (a.enable() || b.enable())
b、 enable甚至不会被称为af a.enable返回true
这就是允许这样的条件
if (s != null && s.equals(foo))
如果操作员没有短路,这将导致NullPointerException
if (a.enable() && b.enable())
只有当第一个条件为true时,才会调用第二个条件。您可以尝试使用逻辑运算符。可能在任何编程语言书籍的第一章中。太麻烦了,也查不出来?为什么不在b.enable和c.enable打印一些东西呢?您可以检查它是否被执行。非常感谢,这对理解有很大帮助。欢迎使用SO。请考虑解释您的代码是如何工作的并格式化您的答案。正如你所写的,你的回答似乎是胡言乱语。@RichardErickson即使你写了,也不是真的。这不是胡言乱语;海报根本没有用代码块格式化,也没有使用完美的英语。@RichardErickson为什么你认为我的答案是胡言乱语。原因有两个:1你最初的问题格式不正确,2原始帖子没有完整的句子。正如QPaysTaxes所指出的,我可能很严厉。也许“邋遢”是个更好的形容词。顺便说一句,我不是那个否决你答案的人。