static void liste(int [][] argListe) {
for (int i =0; i < argListe.length; i++) {
for (int j = 0; j < argListe[i].length; j++)
if (argListe[i][j] != 0) {
System.out.print(argListe[i][j]);
}
}
}
Hier möchte ich nur kurz die Anforderung hinterfragen: Du willst die nächste Zeile wirklich immer nach 4 Zahlen (Es sind ja keine Zeichen sondern Zahlen vom Typ int)? Oder willst Du das 2d Array so ausgeben, wie es ist?Ich wurde gerne das nach dem 4 Zeichen die nachste zeile weitegeht.
Output:
1,5,5,5
2,6,6,6
[
[1, 2, 3, 4, 5, 6],
[0, 0, 1, 2, 3, 4],
[1, 2, 3, 4, 0, 5]
]
Output:
1,5,5,5, 2,6,6,6
Ja die zweite Variante meinte ich.Hier möchte ich nur kurz die Anforderung hinterfragen: Du willst die nächste Zeile wirklich immer nach 4 Zahlen (Es sind ja keine Zeichen sondern Zahlen vom Typ int)? Oder willst Du das 2d Array so ausgeben, wie es ist?
Und da Du 0er nicht ausgibst: Wie soll es da genau aussehen?
Man könnte ja ein Beispiel nehmen wie z.B. ein Array, das so aussieht:
Code:[ [1, 2, 3, 4, 5, 6], [0, 0, 1, 2, 3, 4], [1, 2, 3, 4, 0, 5] ]
Wie soll da die Ausgabe aussehen? Immer nach 4 Zahlen ein Zeilenumbruch? Also:
1, 2, 3, 4
5, 6, 1, 2
3, 4, 1, 2
3, 4, 5
Oder das Array Zeilenweise - mit weggelassenen 0er wäre es:
1, 2, 3, 4, 5, 6
1, 2, 3, 4
1, 2, 3, 4, 5
Wenn Du immer 4 Zeichen haben willst, dann kannst du einfach zählen, wie viele Zahlen bereits geschrieben wurden. Wenn das Limit erreicht wird (bei dir 4), dann schreibst du einen Zeilenumbruch und setzt den Zähler wieder auf 0.
Bei der zweiten Variante musst Du also lediglich immer, wenn eine Zeile geschrieben wurde, ein Zeilenumbruch geschrieben werden. Hier wäre es also wichtig, zu verstehen, was die Schleifen jeweils machen.
static void liste(int [][] argListe) {
int counter = 0;
for (int i =0; i < argListe.length; i++) {
for (int j = 0; j < argListe[i].length; j++)
if (argListe[i][j] != 0) {
System.out.print(argListe[i][j] + " ");
counter++;
if (counter == 4)
System.out.print("\n");
}
}
}
Danke! Jetzt klappt alles.Java:if (argListe[i][j] != 0) { System.out.print(argListe[i][j] + " "); counter++; if (counter >= 4){ System.out.print("\n"); counter = 0; } }
du hast vergessen den counter wider auf null zu setzen