While schleife Zeichenkette ausgeben?
Hallo an alle,
ich habe eine Frage zu folgendem Code:
Wieso wird die Zeichenkette ("") nur einmal so ausgegeben und nicht 4mal untereinander?
Wenn ich b innerhalb der ersten while schleife den Wert 0 zuweise, dann wird das Rechteck korrekt angezeigt. Mache ich es außerhalb funktioniert es nicht. Weiß einer wieso? Ich steige nicht ganz dahinter ...
5 Antworten
Da ist ein kleiner Fallstrick drin: Wenn die innere While-Schleife viermal durchgelaufen ist, ist b=4. Also verlässt du die innere Schleife. Jetzt wird eine neue Zeile angefangen und das Programm springt wieder zum Anfang der äußeren Schleife. Jetzt hat aber b immer noch den Wert 4. Die innere Schleife wird also nie wieder ausgeführt.
Du musst den Wert von b irgendwann wieder zurücksetzen, z.B. direkt über der zweiten WHILE-Bedingung.
Alternativ könntest du:
- ... "b" in der inneren Schleife deklarieren ("int b = 0" unter "while (a..." versetzen), dann wird das "b" beim Anfang der Schleife mit 0 initialisiert
- ... for-Schleifen nutzen, die gleichzeitig Hochzählen und deklarieren/initialisieren:
int hoehe = 4;
int breite = 5;
for (int a = 0; a < hoehe; a++) {
for (int b = 0; b < breite; b++) {
System.out.print("*");
}
System.out.println("");
}
Java oder Python?
Würde mir das mal angucken xD
Weil ansonsten b immer auf 5 bleibt, und der dann nicht den while loop ausführt, weil er ja nicht kleiner als breite (5) ist
Manchmal sieht man den Wald vor lauter Bäumen nicht :D
Sobald b einmal auf 5 ist, wird es nicht mehr zurückgesetzt, deswegen wird beim erstenmal ausführen der inneren while-Schleife 5Sterne ausgegeben und danach nicht mehr.
LG
Idee: Setze mal b in der äußeren Schleife wieder auf 0.
P.S.: Bin aber kein Experte.
Macht Sinn! Das war der Hinweis der mir gefehlt hatte :D Danke!!