如果'else'即将发生,那么它是否会被宣布?

sta*_*gas 13 if-statement coding-style

可能重复:
在不需要的情况下,是否应该保留或删除?

什么时候

a = 0
Run Code Online (Sandbox Code Playgroud)

这个:

var foo = function() {
  if (a != 0) return true
  return false
}
Run Code Online (Sandbox Code Playgroud)

或这个:

var bar = function() {
  if (a != 0) return true
  else return false
}
Run Code Online (Sandbox Code Playgroud)

Rus*_*uss 25

你应该做任何使代码更清晰的事情.


Mic*_*ael 18

它无论如何都会在编译时进行优化,因此没有运行时差异.

像往常一样,你可以争论风格.我的50美分:第一个变体(没有明确的其他)更好,因为它的代码完全相同.

当然,在这种情况下,你会这样做

return a != 0;
Run Code Online (Sandbox Code Playgroud)

......但我认为这个问题应该是一般性的.


Nat*_*man 6

我会说这是一个很好的做法,因为它会使代码更容易更改.例如,假设您想要打印出结果.您可以像这样更改它:

if (a != 0) {
    print "returning true"
    return true
}
print "returning false"
return false
Run Code Online (Sandbox Code Playgroud)

这意味着添加两次打印,否则:

if (a != 0) {
    retval = true
} else {
    retval = false
}

print "returning ", retval
return retval
Run Code Online (Sandbox Code Playgroud)

这意味着添加一个打印,但如果没有else,这将无法正常工作.

当然,这是一个人为的例子,但它显示了你应该如何尽可能地使代码可维护.

  • @Noel:修复.无论如何,这个问题被标记为"语言不可知".也许在我写的语言中,`(a!=)`是`(a!= 0)`的简写. (7认同)