如果数组中前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,所以无论呈现什么数组,它都应该进入这些条件之一?
答案 0 :(得分:0)
尝试这个
public boolean arrayFront9(int[] nums) {
boolean result = false;
if (nums.length < 4) {
int counter = 0;
while (counter != nums.length) {
if (nums[counter] == 9) {
result= true;
return result;
}else{
counter = counter + 1;
}
}
if (counter > nums.length) {
result= false;
return result;
}
} else{
int counter = 0;
while (counter <= 4) {
if (nums[counter] == 9) {
result= true;
return result;
}
else{
counter = counter + 1;
}
if (counter > 4) {
result= false;
return result;
}
}
}
return result;
}
实际上你并没有在方法中返回任何内容,而是返回if / else。
答案 1 :(得分:0)
正如评论所说,你的一个代码路径没有返回值。
这更简单。
public boolean containsNine()
{
int maxCount = array.length < 4 ? array.length : 4;
for (int i = 0; i < maxCount; i++)
{
if (array[i] == 9)
{
return true;
}
}
return false;
}