2013-10-31 24 views
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; 
} 

是否有这两个函数的首选标准?如在,这样的功能应该“如果”总是跟着“其他”?如果后面应该跟着其他

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

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)); 
    } 
} 
+1

为了增强可读性,是的。 –

+4

在这种情况下,'else'确实不是必需的,这很清楚,尽管这真是个人意见。这不会影响性能。 –

+0

在这种情况下,我从来没有使用过其他方法,并且我发表了一条评论“//默认情况”来说明问题。 – Julien

回答

0

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

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

2

只是返回boolean值本身

return a > b; 
+0

这是一个非常简单的例子。在检查是否应该抛出异常时,如果“if,if-else”语句发生时有大量的实际执行应该由它自己发生,或者在“else”块内发生,那么我要求大家沿着这些方向行。 – graviton

0

它的偏好和复杂的问题。 这是一个简单的例子,所以你不需要把它放在别的地方。 对于更复杂的情况下,我会建议使用else (if)

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

0

有在这两年的情况下没有逻辑deferences。如果有两种以上的可能性,通常情况下是需要的。考虑下面的情况下

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; 
5

是不是真的有这个公认的标准。例如,在这种情况下,流行的代码改进工具ReSharper将提示您“删除冗余的其他”块,因为您可以轻松地在没有其他的情况下编写它。

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

为您提供作为例子的话,我会说,最简单的方法是

return (a > b); 
0

代码明智没关系。放入其他与否不过是编码风格的问题,而且差别很大。

对我来说,代码如下:

随着其他:你有你的,如果能够出现替代路径,你知道它,并优雅地处理它。

没有别的:“我不知道我们是怎么要么来到这里,所以让我们返回的东西,不会伤害这么多......”

相关问题