if-else 或提前返回

Sco*_*ttF 6 if-statement return code-structure

有时我喜欢使用早期的 return 语句来防止嵌套 if 语句,我发现这会导致代码可读性较差。

我想知道是否存在任何客观或压倒性的普遍共识,以下两种模式是更好的做法?我不认为这是一个主观问题,因为我真正要问的是近乎客观的偏好。

void func() {
    if (a) {
        do b
    }    
    else {
        do c
    }
}
Run Code Online (Sandbox Code Playgroud)

或者

void func() {
    if (a) {
        do b
        return;
    }

    do c
}
Run Code Online (Sandbox Code Playgroud)

小智 8

坦白说,我推荐第二个。

    1. 第二个更清晰易懂
    1. 当其他人修改代码时更容易理解是第一位的。也许第一个在数学中更清楚,但在人类中则不然。


Nya*_*iba 0

第一个更好。简而言之,它可以帮助其他开发人员理解 c 编译是因为条件为 false。它还可以防止其他人对您的代码进行破坏性更改。也就是说,它们都是正确的并且都可以正常工作

  • 我不同意,第一个选择绝对是糟糕的。https://softwareengineering.stackexchange.com/questions/18454/should-i-return-from-a-function-early-or-use-an-if-statement (5认同)