While schleife Zeichenkette ausgeben?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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("");
}
Woher ich das weiß:Berufserfahrung – Software-Entwicklung (Java Enterprise)

MadMax16 
Fragesteller
 27.04.2020, 12:54

Danke!!

1

Java oder Python?

Würde mir das mal angucken xD

Woher ich das weiß:Hobby – Ich bin sehr viel am Computer

MadMax16 
Fragesteller
 27.04.2020, 12:46

Java, sorry

0

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


MadMax16 
Fragesteller
 27.04.2020, 12:49

Macht Sinn! Das war der Hinweis der mir gefehlt hatte :D Danke!!

1
MistrX271  27.04.2020, 12:52
@MadMax16

naja der führt im ersten Durchgang die while-schleife aus, weil b kleiner breite (5) ist. Danach überspringt er die while-schleife, weil b nicht kleiner 5, sondern gleich 5 ist.

1
MadMax16 
Fragesteller
 27.04.2020, 12:57
@MistrX271

Manchmal sieht man den Wald vor lauter Bäumen nicht :D

0

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

Woher ich das weiß:eigene Erfahrung – Mehrere Jahre Erfahrung mit Computern

Idee: Setze mal b in der äußeren Schleife wieder auf 0.

P.S.: Bin aber kein Experte.