Java中“return method()|| method()”的目的是什么?

时间:2013-02-25 15:18:48

标签: java return conditional

我在我正在查看的程序中找到了此代码段,有人可以解释这里发生了什么吗?

return methodA() || methodB();

methodA和methodB最终返回布尔值。这是某种异常保护还是此语句总是返回methodA()?

3 个答案:

答案 0 :(得分:12)

调用methodA并检查结果。如果为true,则立即返回true。否则,它会调用methodB并返回。

无论如何,这被称为短路运营商。我建议学习更多关于Java的运算符,因为你可能会看到很多这样的东西。

如果不需要短路行为,可以使用

return methodA() | methodB();

将调用这两种方法,按位执行或对结果执行(相当于逻辑或布尔值)并返回结果。

答案 1 :(得分:3)

这意味着如果methodA返回true,则将其用作返回值,否则使用methodB的返回值。一种级联评估的返回值。

答案 2 :(得分:0)

缩短后续形式:

boolean a = methodA();
boolean b = methodB();

if(a) {
    return true;
}
else if(b) {
    return true;
}
else {
    return false;
}

如果methodA()返回true,则不会调用methodB(),并返回true。如果MethodA()返回false,则会调用methodB(),其值将返回。