Iterationen in Feldern

HaliGali9761

Mitglied
Guten Abend, ich hoffe ihr könntet mir etwas auf die Sprünge helfen.
Java:
public class IterationenImFeld2 {
    public static void main(String[] args) {
        int[] d = new int[10];
        for (int i = 0; i < 10; i++)
            d[i] = 9 - i;
        for (int i = 0; i < 10; i++)
            System.out.print(d[i] = d[d[i]]);

    }
}
Ich habe folgenden Code.
In der ersten Rechnung d[i][i] werden ja dem Feld die Werte 9,8,7,6,5,4,3,2,1,0 zugewiesen.

Meine Frage ist was genau bei d[d[i]] denn passiert. Als Ergebnis kommen hier 0,1,2,3,4,4,3,2,1,0 raus.

d[d[i[i]] bewirkt doch dass das Array von hinten durchlaufen wird? Sprich ich bekomme in den ersten 5 Ausgaben die Werte 0,1,2,3,4 heraus weil die Reihenfolge umgeändert wird.Wieso bekomme ich in den letzten 5 Ausgaben anschließend dann die Zahlenfolge 4,3,2,1,0, wenn das Array doch rückwärts durchlaufen wird müsste doch auch das Ergebnis 0,1,2,3,4,5,6... sein?

Wäre echt froh wenn mir jemand den Programmablauf erklären könnnte, ich finde einfach keine logische Erklärung
 
Zuletzt bearbeitet von einem Moderator:

Robat

Top Contributor
Du musst dir vor Augen führen, dass sich das Array durch die Anweisung d = d[d[i]] ja auch verändert während du darüber iterierst.
Hier mal die ersten 7 Durchläufe. Du wirst merken, dass sich ab dem 5. Durchlauf nichts mehr ändert.
Code:
i = 0  d[i] = 9  d[d[i]] = 0
Array: [0, 8, 7, 6, 5, 4, 3, 2, 1, 0]

i = 1 d[i] = 8  d[d[i]] = 1
d[1] = d[d[1]] --> d[1] = 1
Array: [0, 1, 7, 6, 5, 4, 3, 2, 1, 0]

i = 2 d[i] = 7  d[d[i]] = 2
d[2] = d[d[2]]  --> d[2] = 2
Array: [0, 1, 2, 6, 5, 4, 3, 2, 1, 0]

i = 3  d[i] = 6  d[d[i]] = 3
Array: [0, 1, 2, 3, 5, 4, 3, 2, 1, 0]

i = 4  d[i] = 5  d[d[i]] = 4
Array: [0, 1, 2, 3, 4, 4, 3, 2, 1, 0]

// ab jetzt ändert sich nichts mehr. d[i] == d[d[i]]
i = 5  d[i] = 4  d[d[i]] = 4
Array: [0, 1, 2, 3, 4, 4, 3, 2, 1, 0]

i = 6  d[i] = 3  d[d[i]] = 3
Array: [0, 1, 2, 3, 4, 4, 3, 2, 1, 0]
 

HaliGali9761

Mitglied
Vielen Dank für die schnelle Antwort, sehr klasse Darstellung und super erklärt. Ich habe mir nicht vor Augen geführt dass die Inhalte des Feldes bei d[d[i]] in den Durchläufen einzeln überschrieben werden und ausgelassen das bei d[i]==d[d[i]] dann keine Änderungen mehr auftreten. War sehr hilfreich, weiter so! :)
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Verschachtelte for-Schleife mit Löschen von Iterationen. Wie über Iterator abbilden? Java Basics - Anfänger-Themen 6
J Klassen Klasse als Komponententyp bei Feldern Java Basics - Anfänger-Themen 2
K Warum sind Werte in den Feldern ? Java Basics - Anfänger-Themen 2
N Klassen Rekursion mit Feldern von Objekten Java Basics - Anfänger-Themen 14
I Iteration in Feldern Java Basics - Anfänger-Themen 2
I Problem mit Feldern Java Basics - Anfänger-Themen 3
D Rekursion mit Feldern - ich raffe es nicht :( Java Basics - Anfänger-Themen 6
E Inhalt von Option Feldern auslesen? Java Basics - Anfänger-Themen 2
A Frag zu Feldern mit den Typ einer Klasse Java Basics - Anfänger-Themen 6
V Zusammenführen von Feldern Java Basics - Anfänger-Themen 9
B Ausgabe von Non-static Feldern Java Basics - Anfänger-Themen 8
L Arrays mit unbestimmt vielen Feldern Java Basics - Anfänger-Themen 7
P Schachbrett mit N x N Feldern Java Basics - Anfänger-Themen 11
G java.lang.reflect -> Werte von Feldern ausgeben Java Basics - Anfänger-Themen 11
Z Terminkalender mittels Klassen und Feldern Java Basics - Anfänger-Themen 2
G Variables Initalisieren von Feldern im Fenster Java Basics - Anfänger-Themen 10
Z Beispiel Würfelspiel mit Verwendung von Feldern Java Basics - Anfänger-Themen 7
G Problem bei Anwendung von Feldern Java Basics - Anfänger-Themen 5
W Vorgänger bzw. Nachfolger von String Feldern Java Basics - Anfänger-Themen 12
M Feld von Feldern Java Basics - Anfänger-Themen 5
G Auswahl in DropDown feldern in JSP seiten als Action Aufruf Java Basics - Anfänger-Themen 2
E Problem bei Ausgabe von Feldern und Methoden! Java Basics - Anfänger-Themen 2
J Java zum Anzeigen von Notes RT-Feldern unter Windows Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben