返回适当的地点

时间:2014-09-12 21:14:46

标签: java return

这不应该返回正确的值吗?因为它明确定义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;
}

1 个答案:

答案 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语句中声明它时,它只在声明行和右括号之间有效。