2012-04-02 12 views
1

配列の要素に対して簡単な数学演算を実行した後、この配列を返し、特定の関数で変更されたものだけを受け取るという問題があります。Java関数の問題 - 配列を返す

あなたは、「うーん、それは起こりそうなことだ」と考えているかもしれません。あなたは正しいですが、別の状況を教えてください:私はfunctionAに電話をしてから、functionBに電話します。出力として1 1 1を取得する代わりに、0 3 -2を取得します。を呼び出さずにfunctionBと全く同じです。私が間違っていたところ、私は理解していない

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 

はここで例のコードです。 = +または= - 演算子を間違って使用していますか、配列を正しく返していませんか、まったく見つからないものがありますか?

何か助けていただければ幸いです。

+0

と同様に、配列自体を変更する場合は、それを返す必要はありません。実際、配列を返すことは、新しい配列を生成していることを意味し、元の配列は変更されません。 – cHao

+0

私は参照してください。私はこれを私のコードに反映しました(上記ではありません)。ありがとうございました! – nmagerko

+1

以下の答えで展開してください: '= + 5'は' =(+5) 'と解釈され、' = -5'は '=(-5)'と解釈されます。 – Jeffrey

答えて

1

は、このSO質問に見てみましょう。減算にも同じ。

+0

ありがとうございました! – nmagerko