모든 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
에 도착하는 경우가 있기 때문에 틀림없이 무엇이든 ...을 반환하지 않고 방법에서 얻을 수 있도록 예외를 던지고, 뭔가 분명히 잘못되었다.
'else'내부 또는 'if/else-if' 전체 외부에서 반환해야합니다. –
묵시적인 else에 대한 return 문이 누락되어 있습니다. –