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.
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
Ich sehe. Ich habe das in meinem Code (nicht oben) reflektiert. Vielen Dank! – nmagerko
Erweiterung um die folgenden Antworten: '= + 5' wird interpretiert als' = (+5) 'und' = -5' würde interpretiert als '= (-5)'. – Jeffrey