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.
I recommend:
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
}
}
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.