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都有返回值,最后一个括号出现错误
每个return语句都在一个if语句内。虽然从逻辑上讲这是不可能的,但是当所有if评估都不为真时,编译器需要返回。
return
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,显然会出错。
else