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は同じ値を持つことに注意してください。

つまり、

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

メソッドをより柔軟にすることができます

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 に答える
0

配列要素を1ずつ増やして、配列を返す必要があると思います。これを行う方法は次のとおりです。

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

}

実際、配列を返す必要はありません。変更は元の配列に反映されます。

于 2012-10-13T17:03:55.777 に答える