每个
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,显然会出错。



