Java if / else语句缺少返回语句
问题描述:
public int checkGuess(int g, int randomnumber){ number=g; this.randomnumber= randomnumber; if (number == randomnumber) return 0; else if (number < randomnumber) return -1; else if (number > randomnumber) return 1; }
为什么这给了我一个丢失的退货陈述错误?每个if / else都有返回值,最后一个括号出现错误
第 1 个答案:
每个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
,显然会出错。
我的应用程序有许多System.out.println()语句。我想从println捕获消息并将其发送到标准记录器(Log4j,JUL等)。怎么做 ?