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

TA贡献1804条经验 获得超3个赞
您可以尝试将las更改else if为else。
if (number == randomnumber)
return 0;
else if (number < randomnumber)
return -1;
else
return 1;
添加回答
举报