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

查看:40
本文介绍了缺少 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 语句中.虽然在逻辑上可能是不可能的,但编译器需要在 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天全站免登陆