c# - 我应该使用 return/continue 语句而不是 if-else 吗?

标签 c# c++ c

在 C、C++ 和 C# 中,当在函数或循环语句中使用条件时,可以尽早使用 continuereturn 语句并摆脱if-else 语句的 else 分支。例如:

while( loopCondition ) {
    if( innerCondition ) {
        //do some stuff
    } else {
        //do other stuff
    }
}

变成

 while( loopCondition ) {
    if( innerCondition ) {
        //do some stuff
        continue;
    }
    //do other stuff
}

void function() {
    if( condition ) {
        //do some stuff
    } else {
        //do other stuff
    }
}

变成

void function() {
    if( condition ) {
        //do some stuff
        return;
    }
    //do other stuff
}

如果 if-else 分支很长,则“after”变体可能更具可读性,因为这种更改消除了 else 分支的缩进。

这样使用 return/continue 是个好主意吗?是否存在任何可能的维护或可读性问题?

最佳答案

我个人的选择方法是,如果 if 部分的主体很短(最多 3 或 4 行),则使用 return/continue变体。如果 body 很长,很难跟踪控制流,所以我选择 else 版本。

因此,通常情况下,这种方法会限制 return/continue 样式的使用以跳过一些数据并避免进一步处理,而不是使用一个以下方法中的一种(更适合if/else)。

关于c# - 我应该使用 return/continue 语句而不是 if-else 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/963982/

相关文章:

c# - .NET dll 热插拔,无需重启应用程序

c# - 长时间运行的任务 - 最佳实践 - ASP.NET 4.0,C#

c - 指针与其地址之间的区别

c - If 和等式语句

C# 将 {CRLF} 替换为 {LF}

c# - 使用 Docusign API 使用 c# sdk 将多个文档添加到信封

c++ - union 作为基类

c++ - 'setResizeMode' 中没有名为 'QHeaderView' 的成员 - 将 Qt 4.7 转换为 Qt 5.8

C++ this指针,函数调用中的隐藏参数

c - X11:如何让一个窗口一个接一个地移动?