如何在函数返回中使用if-else语句?

dsharew

我总是尽量避免嵌套语句。

他们引导我将代码放在大括号中。当每种情况下带有的代码量变大时,很难遵循该代码。

if(condtion) {

} else if(condition2) {

} else {

}

所以,如果我有这样的代码:

void doSomething(){  
    if(condtion) {
        return;
    } else if(condition2) {
        return;
    } else {
        return;
    }    
}

我总是将其更改为这种形式(我避免使用,else因为return每个条件都有一个声明):

void doSomething() {
    if(condtion) {
        return;
    }    
    if(condition2) {
        return;    
    }
    return;
}

但是有人告诉我,我的阅读有点难,哪个更好?

塔吉尔·瓦列夫

如果条件是一些快速案例或前提条件,那么我希望立即使用returnthrowelse声明。例如:

void processArray(int[] array) {
    if(array == null || array.length == 0) {
        System.out.println("Empty input");
        return;
    }
    // do some complex computations
}

这样,您的方法的其余部分(即主过程)就没有多余的缩进,并且在结尾处也没有多余的花括号,这些花括号可能位于else语句下方

如果条件分支的长度很长,并且长度大致相同,则代码仍然会闻到臭味。您需要对其进行重构,以提取方法的分支,或者(有时更好)使用Command pattern之类的方法来分离类

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章