2012-10-13 44 views
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}; 

這裏有什麼錯?

+0

你想返回你的數組,其元素增加1? –

回答

5

您只需將new int[]添加到您的return語句來編譯它即可。如果你剛開始使用大括號,它不知道你想要什麼。請注意,這將返回一個新的陣列,而原始的arr將具有相同的值。

return new int[] {arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1}; 
+0

哦,我不知道!非常感謝您的早期和簡單的迴應! – golddove

+0

:)沒問題。祝你好運! – asteri

0

我猜你需要回到你的陣列,以每次增加1數組元素這裏是你如何能做到這一點: -

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

} 

其實你不」 t需要返回數組。該更改將反映在原始數組中。

+0

這只是一個例子程序,我雖然當場。我試圖做的是返回一個數組,而不提前創建參考。謝謝你的回答! – golddove

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}; 
} 
+0

這個工程!謝謝!我讓傑夫的回答正確,因爲他是第一個! – golddove

0

你可以讓你的方法更靈活

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

    return array; 
} 

恆定收益陣列的長度:

array.length 
+0

這只是我當場的一個示例程序。我試圖做的是返回一個數組,而不提前創建參考。謝謝你的回答! – golddove

1

您應該使用below語句返回數組。

return new int[] {arr[0] + 1, arr[1] + 1, arr[2] + 1, arr[3] + 1}; 
+0

這個工程!謝謝!我讓傑夫的回答正確,因爲他是第一個! – golddove

相關問題