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
}
}
引發(fā)異常將使您可以退出該方法而無需返回任何信息……因為可以說,如果到達最后一個else,顯然會出錯。

TA貢獻1804條經驗 獲得超3個贊
您可以嘗試將las更改else if為else。
if (number == randomnumber)
return 0;
else if (number < randomnumber)
return -1;
else
return 1;
添加回答
舉報