2D Array Ausgabe mit for-Schleife i,j

Crucial

Mitglied
Meine Frage handelt sich eher darum wie es möglich ist, denn wie es geht das kann ich schon.

int [][] virusWelt = new int[2][2];
virusWelt[0][0] = 12;
virusWelt[0][1] = 3;
virusWelt[1][0] = 5;
virusWelt[1][1] = 9;

for (int i = 0; i < virusWelt.length ; i++) {
for (int j = 0; j < virusWelt.length; j ++) {
System.out.println(virusWelt[ i ][ j ]);

Also wie kann das sein, dass mir die for-Schleife am Ende 12 3 5 9 (Reihenfolge des Arrays) ausgibt.

Würde ich nur einen Zähler i benutzen:

for (int i = 0; i < virusWelt.length ; i++)
System.out.println(virusWelt [ i ] )

würde ich 12 und 9 ausgeben, da er den Index benutzt von [0] [0] und [1] [1], das ist mir bewusst.

Also zu meiner Anfangsfrage, wir beginnen bei i = 0 ist ja [0] die linke Hälfte und j = 0 ist dann [0] die rechte Hälfte zusammen [0][0]
SO, aber jetzt wenn ich i++ benutze ist i=1 und somit die linke Hälfte [1] und j++ wäre die rechte Hälfte [1] und somit wieder [1]
zusammen also [1] [1]und damit hätte ich nur wieder wie oben nur die Indexstelle [0] [0] und [1] [1] und somit würde [0] [1] und [1] [0] fehlen.

Ja ich weiß dass es falsch ist, jedoch egal wie ich nachdenke ich verstehe nicht wie i bei [0] stehen bleiben kann und j bei [1], wenn wir doch beide um 1 erweitern durch i++ und j++, Wie kann es sein dass eine Indexstelle [0] und die andere [1] ist, wenn beide mit = 0 starten und beide mit ++ um 1 erhöht werden
 
Zuletzt bearbeitet:
Als erstes eine große Bitte: Code immer in Code-Tags posten! Also z.B. den Knopf </> nutzen.
(Ansonsten wertet er Dinge teilweise aus z.B. das [i] wird zum Umschalten auf kursive Schrift.)

Und die Schleifen laufen doch der Reihe nach durch: Also wenn Du die Schleifen so hast:
Java:
for (int i = 0; i < virusWelt.length ; i++) {
    for (int j = 0; j < virusWelt.length; j ++) {
        // ...
    }
}

Dann geht er ja so vor:
  • i := 0.
  • Ist i < die Länge?: Ja

Innere von Schleife i:
  • j := 0
  • ist j < die Länge?: ja
  • Das innere der schleife wird ausgehführt.
  • j := j+1 = 1
  • ist j < die Länge?: Ja
  • Das innere der Schleife wird ausgeführt.
  • j := j+1 = 2.
  • ist j < die Länge?: Nein, Schleife beendet.

  • i := i+1 = 1
  • ist i < Länge? Ja
-> Erneut das Innere von Schleife i
  • i := i+1 = 2
  • ist i < Länge? Nein, Schleife beendet.

Ist das Verständlich?

Für jeden Schleifendurchlauf für i wird immer die ganze Schleife j Durchlaufen.
Also für i=0 werden erst alle j Elemente ausgegeben und daher 12, 3
Dann für i=1 die 5, 9
 
Aso hab es jetzt bemerkt, da es eine innere for schleife ist geht der i Counter erst weiter sobald der j Counter zu ende gezählt hat.
Ist das so richtig?
 
Als erstes eine große Bitte: Code immer in Code-Tags posten! Also z.B. den Knopf </> nutzen.
(Ansonsten wertet er Dinge teilweise aus z.B. das [i] wird zum Umschalten auf kursive Schrift.)

Und die Schleifen laufen doch der Reihe nach durch: Also wenn Du die Schleifen so hast:
Java:
for (int i = 0; i < virusWelt.length ; i++) {
    for (int j = 0; j < virusWelt.length; j ++) {
        // ...
    }
}

Dann geht er ja so vor:
  • i := 0.
  • Ist i < die Länge?: Ja

Innere von Schleife i:
  • j := 0
  • ist j < die Länge?: ja
  • Das innere der schleife wird ausgehführt.
  • j := j+1 = 1
  • ist j < die Länge?: Ja
  • Das innere der Schleife wird ausgeführt.
  • j := j+1 = 2.
  • ist j < die Länge?: Nein, Schleife beendet.

  • i := i+1 = 1
  • ist i < Länge? Ja
-> Erneut das Innere von Schleife i
  • i := i+1 = 2
  • ist i < Länge? Nein, Schleife beendet.

Ist das Verständlich?

Für jeden Schleifendurchlauf für i wird immer die ganze Schleife j Durchlaufen.
Also für i=0 werden erst alle j Elemente ausgegeben und daher 12, 3
Dann für i=1 die 5, 9
Code-Tags posten! Also z.B. den Knopf </> nutzen. Alles klar sry.
Und ja sehr verständlich, danke.
 

Neue Themen


Zurück
Oben