在else语句中返回

时间:2016-04-21 02:45:07

标签: if-statement return

你应该写这样的函数:

int foo()
{
    if (bar)
        return 1;
    return 2;
}

或者喜欢这个?

int foo()
{
    if (bar)
        return 1;
    else
        return 2;
}

单向客观比其他方式更好,还是个人偏好?如果一种方法更好,为什么?

3 个答案:

答案 0 :(得分:1)

尽可能尝试从函数中获取一个退出点。使代码更易于维护和调试。所以我做这样的事情:

int foo()
{
    var retVal;
    if (bar) {
        retVal = 1;
    }
    else {
        retVal = 2;
    }
    return retVal;
}

或者如果你想要更简洁......

int foo()
{
    var retVal = 2;
    if (bar) {
        retVal = 1;
    }
    return retVal;
}

答案 1 :(得分:1)

在表现方面没有什么不同。 这是个人偏好。我更喜欢第二个,因为它干净且易懂。经验丰富的人可以立即掌握这两种语法但是当你将第一种语法放在新程序员面前时,他会感到困惑。

我更喜欢整洁的代码(兼顾可读性和性能)。当第一种语法肯定没有性能改进时,我会选择第二种语法。

答案 2 :(得分:0)

上述任何陈述都没有性能改进,完全是您的选择。编译器足够聪明,可以弄清楚你要做什么。我个人更喜欢第一个,因为这意味着更少的代码。但是在c#中,生成的msil对于两种情况都是相同的。