Endlosschleife

Aus EINI
Version vom 10. Juli 2015, 14:55 Uhr von Marius (Diskussion | Beiträge) (Korigiertes Beispiel)

Wechseln zu: Navigation, Suche

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