为了账号安全,请及时绑定邮箱和手机立即绑定

关于返回值的问题 ,return的次数到底到多少 ?

/ 猿问

关于返回值的问题 ,return的次数到底到多少 ?

繁星淼淼 2019-03-13 18:19:58

假设存在以下的代码:


pubilc Object get(){

        

        if(){

            

            if(){

                return null;

            }else{

                return null;

            }

            

        }else{

            return null;

        }

}

这样就存在3个return了 ,这样写存在什么问题 ?


如果改成这样设置一个常量,该常量为null:


pubilc Object get(){

        

        

        

        if(){

            

            if(){

                return user;

            }else{

                return SystemParm.NULL;

            }

            

        }else{

            return SystemPar.NULL;

        }

}

到底哪一种好一些 ?


查看完整描述

3 回答

?
慕妹3242003

如果追求可读性,这样写:


pubilc Object get() {

    if () {

        return A;

    }


    if () {

        return B;

    }


    return C;

}


查看完整回答
反对 回复 2019-04-21
?
慕沐林林

除了可读性差点,没什么问题,一个方法有可能根据不同情况返回不同的结果,但每次调用都只会返回其中一种结果。


有种比较好的写法是,在方法体内优先处理异常分支,尽早返回异常结果。


pubilc Object get(){

    //第一个if对应题目中的最后一个else

    if(invalidResult1) {

        return null;

    }

    //第二个if对应题目中倒数第二个else

    if(invalidResult2) {

        return null;

    }

    //对应题目中第二个if

    return succesResult;

}


查看完整回答
反对 回复 2019-04-21
?
12345678_0001

我认为应该是这样子的


pubilc Object get(){

        Object obj=null;

        if(){

            

            if(){

               obj=x;

            }else{

               obj=xx;

            }

            

        }else{

            obj=xxx;

        }

      return obj;

}


查看完整回答
反对 回复 2019-04-21

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信