Endlosschleife

Aus EINI
Version vom 13. Juni 2016, 21:47 Uhr von Kristin (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Eine Endlosschleife ist eine Schleife, die nicht terminiert. Das heißt, die Schleife wird endlos durchgearbeit, ohne jemals ein richtiges Ergebnis wiederzugeben.

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) wieder. Dieser Wert ändert sich jedoch nicht, sodass 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 dieser aufgebraucht ist oder der Nutzer das Programm abbricht.

Vermeidung von Endlosschleifen

Um Endlosschleifen zu vermeiden, ist es wichtig, zu überprüfen, ob die Bedingung im Schleifenkopf irgendwann false ist.

Im obrigen Beispiel wäre dies der Fall, wenn im Schleifenrumpf die Variable i durch i = i+1; hochgezählt würde. i hätte nach zehn Iterationen den Wert 10. Damit wäre die Bedingung im Schleifenkopf false und der Schleifenrumpf würde nicht ausgeführt.

Korrigiertes 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 nun.");
}