Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 在else语句中返回_If Statement_Return - Fatal编程技术网

If statement 在else语句中返回

If statement 在else语句中返回,if-statement,return,If Statement,Return,您应该这样编写函数: int foo() { if (bar) return 1; return 2; } int foo() { var retVal; if (bar) { retVal = 1; } else { retVal = 2; } return retVal; } 还是像这样 int foo() { if (bar) return 1;

您应该这样编写函数:

int foo()
{
    if (bar)
        return 1;
    return 2;
}
int foo()
{
    var retVal;
    if (bar) {
        retVal = 1;
    }
    else {
        retVal = 2;
    }
    return retVal;
}
还是像这样

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

是一种方式客观上优于另一种方式,还是个人偏好的问题?如果有一种方法更好,为什么?

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

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

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

int foo()
{
    if (bar)
        return 1;
    return 2;
}
int foo()
{
    var retVal;
    if (bar) {
        retVal = 1;
    }
    else {
        retVal = 2;
    }
    return retVal;
}
或者如果你想更简洁的话

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

我尽可能从一个函数中有一个退出点。使代码更易于维护和调试。所以我会这样做:

int foo()
{
    if (bar)
        return 1;
    return 2;
}
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:2
这是个人喜好的问题。相关:注意还有
返回栏?1:2
@Reddy-它怎么不可能到达?它将始终执行。
返回retVal。。如果控件进入if内部,则将执行if内部的return语句。如果执行else中的return语句,则跳过else。没有其他可用的流。。如果它的
if
..@Reddy-你已经失去了我,“
if
中没有return语句,
else
中也没有return语句,那么你的语法就很好了。唯一的返回语句是最后一个语句。@Reddy-它怎么不可访问?它将始终执行。
返回retVal。。如果控件进入if内部,则将执行if内部的return语句。如果执行else中的return语句,则跳过else。没有其他可用的流。。如果它的
if
..@Reddy-你已经失去了我,“
if
中没有return语句,
else
中也没有return语句,那么你的语法就很好了。唯一的返回语句是最后一个语句。