private int getJobIndex() {
int jobNum;
boolean inputValid = false;
while (!inputValid) {
jobNum = getIntegerInput("Please select a job to work on: ");
if (jobNum < 0 || jobNum >= game.getNumberOfJobs()) {
System.out.println("Invalid selection. Please choose a valid job.");
}
else {
inputValid = true;
}
}
return jobNum;
}
这是一个有点理论上的问题,所以请耐心等待。在上面的代码中,我获取用户输入,在循环中验证它并返回它。上面编写的代码不能在Eclipse中编译,因为&#34;本地变量jobNum可能尚未初始化&#34;。 Eclipse的&#39;建议是将初始声明更改为int jobNum = 0;
。但这让我感到困扰,因为如果jobNum在没有初始化的情况下越过了while循环,那就太糟糕了,并且设置为0可能会使该bug很难找到(特别是在这里,因为0是一个有效的作业索引)。如果它没有初始化,我想事情会很快破裂,我会发现这个错误。现在,我可以将它初始化为-1,但很容易想象一个类似的情况,其中所有的int都是有效的。这个例子并不重要,但是为了将来编写更好的代码......
总而言之,我有两个问题:
答案 0 :(得分:1)
while (!inputValid) {
不满足Java的可达性测试,或其他方式。
因此,在这种情况下,Java需要一个错误。