Endlosschleife: Unterschied zwischen den Versionen
Marius (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Eine Endlosschleife ist eine Schleife, die nicht terminiert. Die Schleife wird endlos durchgearbeit, ohne ein richtiges Ergebnis widerzugeben. ===Beispiel=== …“) |
(kein Unterschied)
|
Version vom 10. Juli 2015, 14:53 Uhr
Eine Endlosschleife ist eine Schleife, die nicht terminiert. Die Schleife wird endlos durchgearbeit, ohne ein richtiges Ergebnis widerzugeben.
Beispiel
public static void Endlosschleife() { int i = 0; while(i < 10) { System.out.println(i); } System.out.println("Das Programm erreicht diese Zeile nie."); }
Dieses Programm gibt den Variablenwert von i (i = 0) wider. Jedoch ändert sich dieser Wert nicht, so dass die Überprüfung im Schleifenkopf immer true ist und die Schleife immer wieder ausgeführt wird. Das Programm erreicht nie die Anweisungen nach der while-Schleife. Das Programm nutzt daher immer mehr Speicher, bis er aufgebraucht ist oder der Nutzer das Programm abbricht.
Vermeidung von Endlosschleife
Um Endlosschleifen zu vermeiden, ist es wichtig, zu überprüfen, ob die Bedingung im Schleifenkopf irgendwann false ist. Im den obigen Beispiel wäre dies, wenn im Schleifenrumpf die Variable i durch i = i+1; hochgezählt würde. i hätte nach zehn Schleifendurchläufe den Wert 10 und damit wäre die Bedingung im Schleifenkopf false und der Schleifenrumpf würde nicht ausgeführt.
Korigiertes Beispiel
public static void Endlosschleife() { int i = 0; while(i < 10) { System.out.println(i); i = i + 1; } System.out.println("Das Programm erreicht diese Zeile nie."); }