内联布尔返回语句是否评估if条件?

时间:2017-03-10 22:50:35

标签: java syntax

我可以吗...

return  (SomeClass.SomeInt > 0);

......而不是......

if (SomeClass.SomeInt > 0)
{
    return true;
}
else
{
    return false;
}

...返回if语句评估的布尔值? 我知道它会编译,但我不知道这是否有用,或者使用它是否有任何缺点。

3 个答案:

答案 0 :(得分:2)

是的,你可以。它会工作。 它实际上比if-else选项更好。

答案 1 :(得分:2)

return值的结果为boolean。在您的第一个表单中没有要评估的if语句,而第二个表单在选择返回if之前会有专门的boolean语句进行评估。

在许多IDE和许多商店中,返回第一个表单是首选,因为它更容易阅读,其意图更清晰。换句话说,你没有做更多工作来返回相同的boolean;如果SomeClass.SomeInt > 0,您可以轻松获得truefalse

答案 2 :(得分:0)

是的,你可以做到,它也更干净。除了其他答案之外,如果你想返回别的东西而不是真/假,你也可以使用ternery操作。

return i> 10? b : c;