我遇到了一個問題,在對數組的元素執行簡單的數學運算後,我返回此數組並僅接收特定函數中更改的內容。Java函數問題 - 返回數組
你可能會想:「太棒了,這就是應該發生的事情。」你是對的,但讓我給出另一種情況:我打電話functionA
下面,然後我打電話functionB
。我得到0 3 -2
,與functionB
完全相同,而不需要撥打functionA
的電話號碼1 1 1
。
這裏的例子代碼:
public static int[] position = new int[3]; //This array is filled
//with [0,0,0] using a for-loop
public static int[] functionA(int[] position){
position[0] =+ 1; //=+ operator use
position[1] =- 2; //=- operator use
position[2] =+ 3;
return position;
}
public static int[] functionB(int[] position){
position[0] =+ 0;
position[1] =+ 3;
position[2] =- 2;
return position;
}
functionA(position);
functionB(position);
System.out.println(myPosition[0]); //0
System.out.println(myPosition[1]); //1
System.out.println(myPosition[2]); //-2
我不明白,我哪裏錯了。我是否正確使用了= +或= - 運算符,或者我錯誤地返回了數組,還是存在某些我完全缺失的內容?
任何幫助表示讚賞。
正如一邊:如果你打算修改數組本身,沒有必要返回它。事實上,返回一個數組往往意味着你正在生成一個新數組,並且原始數組不會被修改。 – cHao 2012-04-02 00:08:54
我明白了。我已經在我的代碼中反映了這一點(不在上面)。謝謝! – nmagerko 2012-04-02 00:10:59
擴展以下答案:'= + 5'將被解釋爲'=(+5)'和'= -5'將被解釋爲'=(-5)'。 – Jeffrey 2012-04-02 00:12:13