缺少if / else语句的return语句 [英] Missing return statement for if/else statement

查看:158
本文介绍了缺少if / else语句的return语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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都有一个返回
,最后一个括号出现错误

why is this giving me a missing return statment error? every if/else has a return the error comes up for the last bracket

推荐答案

每个 return 语句位于 if 语句中。虽然在编写逻辑上可能是不可能的,但是当 中的任何一个评估为真时,编译器需要返回。

Every return statement is inside an if statement. While it may be logically impossible as written, the compiler needs a return for when none of the if evaluate true.

我建议:

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;
}

在我看来,这个解决方案可以解决编译器问题并略微提高可读性。

This solution fixes the compiler problem and improves readability slightly, in my opinion.

另外,还有这个解决方案:

Alternatively, there's this solution:

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 ,显然错了。

Throwing an exception will allow you to get out of the method without returning anything... because arguably, if you get to the final else, something clearly went wrong.

这篇关于缺少if / else语句的return语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆