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

if / else语句缺少返回语句

if / else语句缺少返回语句

慕尼黑8549860 2019-11-04 10:52:48
public int checkGuess(int g, int randomnumber){    number=g;    this.randomnumber= randomnumber;    if (number == randomnumber)        return 0;    else if (number < randomnumber)        return -1;    else if (number > randomnumber)        return 1;}为什么这给了我一个丢失的退货陈述错误?每个if / else都有返回值,最后一个括号出现错误
查看完整描述

3 回答

?
达令说

TA贡献1821条经验 获得超6个赞

每个return语句都在一个if语句内。虽然从逻辑上讲这是不可能的,但是当所有if评估都不为真时,编译器需要返回。


我建议:


public int checkGuess(int number, int randomnumber){

    int retVal = 0;

    this.randomnumber= randomnumber;


    if (number == randomnumber) {

        retVal = 0;

    } else if (number < randomnumber) {

        retVal = -1;

    } else if (number > randomnumber) {

        retVal = 1;

    }

    return retVal;

}

我认为,此解决方案可解决编译器问题并稍微提高可读性。


或者,有以下解决方案:


public int checkGuess(int number, int randomnumber){

    this.randomnumber= randomnumber;


    if (number == randomnumber) {

        return 0;

    } else if (number < randomnumber) {

        return -1;

    } else if (number > randomnumber) {

        return 1;

    } else {

        //throw an exception

    }

}    

引发异常将使您可以退出该方法而无需返回任何信息……因为可以说,如果到达最后一个else,显然会出错。


查看完整回答
反对 回复 2019-11-04
?
狐的传说

TA贡献1804条经验 获得超3个赞

您可以尝试将las更改else if为else。


if (number == randomnumber)

    return 0;


else if (number < randomnumber)

    return -1;


else

    return 1;


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 595 浏览

添加回答

举报

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