我删除了“} else { }”但代码仍然正确?

时间:2020-12-21 21:42:26

标签: if-statement return conditional-statements

if (condition a) {
    return (result b)
} else {
    return (result c)
}

一旦我删除了“}else{},代码就变成了

if (condition a) {
    return (result b)
} 
return (result c) 

为什么第二个代码仍然与第一个代码具有相同的功能?

对我来说,在第二个中,它无论如何都会运行 return (result c) 但是,情况并非如此!

有什么说明吗?

2 个答案:

答案 0 :(得分:0)

考虑每个示例中发生的情况...

在第一个例子中:

  • 如果 condition atrue,则将执行该块内的代码,返回 result b 并退出函数。
  • 如果条件不成立,则执行 else 块内的代码,返回 result c 并退出函数。

在第二个例子中:

  • 如果 condition atrue,则将执行该块内的代码,返回 result b 并退出函数。
  • 如果条件不为真,则控制将继续通过 if 块并执行下一个代码,返回 result c 并退出函数。

逻辑上两者是一样的。在这种特定情况下,包含 else 只是个人喜好问题。

<块引用>

对我来说,在第二个中,它无论如何都会运行 return (result c)

如果函数已经返回结果并退出,则不会。然后函数中剩余的代码不会被执行,因为它已经返回了。

答案 1 :(得分:0)

在大多数语言中,return (something) 有两件事:

  1. 定义当前函数/方法的返回值/...
  2. 结束当前函数/方法/...的控制流并返回给调用者。

第 2 项意味着即使没有 else,这两段代码基本上也做同样的事情:

由于 if 语句所保护的代码块永远不会正常完成,而是在执行 if 块时将不会执行的代码返回给调用者。

相关问题