【发布时间】:2017-07-25 20:19:26
【问题描述】:
如果数组中的前 4 个元素之一是 9,则此方法应该返回 true。数组长度可能小于 4。在我的方法中,由于某种原因,我不断收到“缺少返回语句错误” .
public boolean arrayFront9(int[] nums) {
if (nums.length < 4) {
int counter = 0;
while (counter != nums.length) {
if (nums[counter] == 9) {
return true;
}else{
counter = counter + 1;
}
} if (counter > nums.length) {
return false;
}
}else{
int counter = 0;
while (counter <= 4) {
if (nums[counter] == 9) {
return true;
}else{
counter = counter + 1;
} if (counter > 4) {
return false;
}
}
}
}
`
我知道我必须确保无论什么代码都必须有一些返回值,但是考虑到 if 和 else 语句,数组的长度要么小于 4,要么大于或等于 4,所以无论呈现什么数组,它都应该输入这些条件之一?
【问题讨论】:
-
您的所有返回都在 if 语句中,并且编译器已确定您有可能没有返回任何内容的潜在逻辑路径。在方法的末尾添加一个默认的返回语句。
-
Java 不会查看 while/if 的条件来查看它们可能编译多少次。它只知道“一个while循环可能执行0-N次”等等。
标签: java