0
public int example1(int a, int b) {
    if (a > b) {
        return true;
    } else {
        return false;
    }
}

public int example2(int a, int b) {
    if (a > b) {
        return true;
    }
    return false;
}

这两个功能是否有首选标准?如在这样的函数中,“if”是否应该总是跟在“else”之后?

编辑:例如,我看到等于定义如下?你们中有人说你会删除“其他”吗?

public boolean equals(Object otherObject)
{
    if (otherObject == null)
        return false;
    else if (getClass() != otherObject.getClass())
        return false;
    else
    {
        MyClass otherMyClass = (MyClass) otherObject;
        return (variable.equals(otherMyClass.variable));
    }
}
4

6 回答 6

5

这实际上没有一个公认的标准。

例如,流行的代码改进工具 ReSharper 在这种情况下会提示您“删除多余的 else”块,因为您可以轻松编写它而无需 else。

但反过来有些人会说使用 else 块更具可读性。

对于您提供的示例,我想说最简单的选择是

return (a > b);
于 2013-10-31T13:23:29.200 回答
2

只返回boolean值本身

return a > b;
于 2013-10-31T13:22:37.280 回答
0

代码方面没关系。是否输入 else 只是编码风格的问题,而且差异很大。

对我来说,代码如下所示:

与 else:如果发生这种情况,您有一条替代路径,并且您知道并优雅地处理它。

没有别的:“我也不知道我们是怎么到这里的,所以让我们返回一些不会造成太大伤害的东西......”

于 2013-10-31T13:29:56.030 回答
0

不,对此没有“预定义标准”。

Java 有一些编码约定,例如参见Java Code Convention,但我从未见过涵盖该主题的。

于 2013-10-31T13:22:30.197 回答
0

这是一个偏好和复杂性的问题。这是一个简单的案例,因此您实际上不需要将其放入 else 中。对于更复杂的情况,我建议使用else (if)

当然这个例子可能不是最好的,因为你也可以把它缩短为:return a > b

于 2013-10-31T13:23:01.070 回答
0

在这两种情况下没有逻辑上的尊重。如果有两种以上的可能性,通常需要 else 。考虑以下情况

if(a>2){
    return "GOOD";
}else if(a>1){
    return "BAD";     
}else{
    return null;
}

您可以将以下内容用于您的案例

return a>b ;// it self retun true or false

return (a>b) ? true:false;
于 2013-10-31T13:23:05.263 回答