2012-04-02 8 views
1

Ich habe ein Problem, wo, nach einer einfachen mathematischen Operation für die Elemente eines Arrays, ich dieses Array zurückgeben und nur erhalten, was in der spezifischen Funktion geändert wurde.Java-Funktionsproblem - Array zurückgeben

Sie denken vielleicht: "Großartig. Das soll passieren." Sie sind richtig, aber lassen Sie mich eine andere Situation geben: Ich rufe functionA unten, dann rufe ich functionB. Anstatt 1 1 1 als die Ausgabe zu erhalten, bekomme ich 0 3 -2, die genau dasselbe wie functionB ohne den Anruf zu functionA.

Hier ist der Code des Beispiel:

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 

Ich verstehe nicht, wo ich schief gelaufen ist. Benutze ich die = + oder = - Operatoren falsch oder gebe ich das Array falsch zurück, oder fehlt mir etwas?

Jede Hilfe wird geschätzt.

+0

Nur als Nebenbemerkung: Wenn Sie das Array selbst ändern möchten, müssen Sie es nicht zurückgeben. Tatsächlich bedeutet das Zurückgeben eines Arrays, dass Sie ein neues generieren und dass das ursprüngliche Array nicht geändert wird. – cHao

+0

Ich sehe. Ich habe das in meinem Code (nicht oben) reflektiert. Vielen Dank! – nmagerko

+1

Erweiterung um die folgenden Antworten: '= + 5' wird interpretiert als' = (+5) 'und' = -5' würde interpretiert als '= (-5)'. – Jeffrey

Antwort

1

Es ist +=, nicht =+. Das gleiche für die Subtraktion.

+0

Vielen Dank für Ihre Hilfe! – nmagerko

Verwandte Themen