3

我希望执行以下操作:

public static int[] plusOneLengthFour(int[] arr) {
  return {arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1};
}

但是在编译时,我收到以下错误:

TestClass.java:5: error: illegal start of expression
        return {arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1};

这里有什么问题?

4

5 回答 5

5

你只需要添加new int[]到你的 return 语句来编译它。如果你只是从花括号开始,它不知道你想要什么。请注意,这将返回一个数组,而原始数组arr将具有相同的值。

IE,

return new int[] {arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1};
于 2012-10-13T17:02:36.840 回答
4

如果要修改输入数组,则不需要返回任何内容:

public static void plusOneLengthFour(int[] arr) {
    arr[0]++;
    arr[1]++;
    arr[2]++;
    arr[3]++;
}

如果要创建一个新数组,其中包含输入数组的前 4 个元素并以 1 递增,那么要使用的代码是

public static int[] plusOneLengthFour(int[] arr) {
    return new int[] {arr[0] + 1, arr[1] + 1, arr[2] + 1, arr[3] + 1};
}
于 2012-10-13T17:05:20.850 回答
1

您应该使用下面的语句来返回数组。

  return new int[] {arr[0] + 1, arr[1] + 1, arr[2] + 1, arr[3] + 1};
于 2012-10-13T19:32:23.417 回答
0

我猜你需要返回你的数组,数组元素递增 1。你可以这样做: -

public static void plusOneLengthFour(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
        arr[i] = arr[i] + 1;
    }

}

实际上,您不需要返回 Array。更改将反映在原始数组中。

于 2012-10-13T17:03:55.777 回答
0

你可以让你的方法更灵活

public static int[] addNumberToItems(int[] array, int valueToAdd) {
    for (int i = 0; i < array.length; i++)
        array[i] += valueToAdd;

    return array;
}

此常量返回数组的长度:

array.length
于 2012-10-13T17:05:39.273 回答