Java - 返回或if-else

Str*_*ies 14 java coding-style

可能重复:
函数是否只有一个return语句?

这就是我所说的.

if (condition) {
    aVariable = 1;
    return;
}
doSomething();

if (condition) {
    aVariable = 1;
} else {
    doSomething();
}
Run Code Online (Sandbox Code Playgroud)

这些中的一个优先于其他(惯例等)吗?

Fen*_*ton 10

早期返回可以通过减少代码中的嵌套来提高可读性.

在某些语言中,最佳做法是使用单个return语句,例如在C++中,您应该在顶部进行分配并在方法的底部进行解除分配,但Java不是这样的语言,因此优先于单个return语句的可读性.

许多人使用单一返回规则,因为他们不理解为什么存在或者因为他们具有托管语言的背景.

请注意

在您评论编写代码的"一种真实方式"之前,请暂停片刻并考虑以下内容.

为什么必须只有一个退货声明?

如果你想不出一个好理由,就不要再争辩说应该是这样.


Alp*_*dar 8

可读性是最重要的.因此,在函数开始时的早期返回是可以的,但是一旦方法开始执行比检查其imputs /对象状态更复杂的事情,它应该只有一个返回.

如果它太复杂,它应该被重构为多个功能.

  • 使用-1因为我通常更喜欢使用return语句而不是代码执行if/switch语句只是为了到达方法的末尾.一旦事情变得复杂,我当然完全赞成重构.此外,错误的输入应导致异常,而不是早期返回.这个问题在答案中并不清楚. (5认同)