这不应该返回正确的值吗?因为它明确定义int[] temp
?但是,它说temp
未得到解决。所以我不得不在temp
内放置另一个返回if
并更改return
语句中的最后一个else
,因此返回两个返回值。如果我在if和else中设置值,我不能把它返回到外面吗?
public int[] maxEnd3(int[] nums) {
if (nums[0] > nums[2]) {
int[] temp = {nums[0],nums[0],nums[0]};
}
else {
int[] temp= {nums[2],nums[2],nums[2]};
}
return temp;
}
答案 0 :(得分:2)
您没有在正确的范围内声明temp。 试试这个:
public int[] maxEnd3(int[] nums) {
int []temp = new int[3];
if (nums[0] > nums[2]) {
temp[0] = nums[0];
temp[1] = nums[0];
temp[2] = nums[0];
}
else {
temp[0] = nums[2];
temp[1] = nums[2];
temp[2] = nums[2];
}
return temp;
}
或者这个:
public int[] maxEnd3(int[] nums) {
int []temp;
if (nums[0] > nums[2]) {
temp = new int[]{nums[0],nums[0],nums[0]};
}
else {
temp = new int[]{nums[2],nums[2],nums[2]};
}
return temp;
}
当你在if语句中声明它时,它只在声明行和右括号之间有效。