Einführung
In der Informatik ist eine Abbruchbedingung eine Bedingung, die erfüllt sein muss, damit ein Prozess beendet wird. Jede Schleife oder rekursive Funktion benötigt deswegen eine Abbruchbedingung.
Die Existenz einer Abbruchbedingung garantiert aber nicht die Terminierung: sie ist notwendig, aber nicht hinreichend (Beispiele: Aussagenlogik). Fehler in der Spezifikation der Schleife oder der rekursiven Funktion, oder Eingaben, die nicht der Spezifikation entsprechen, können die Abbruchbedingung unerfüllbar machen. In diesem Fall entsteht eine Endlosschleife.
In der folgenden Funktion (Syntax von C++ bzw. Java) stellt die zweite Zeile die Abbruchbedingung dar; ist diese erfüllt, wird die Rekursion unter Rückgabe des errechneten Wertes beendet:
int rekursiv(int i) {
if (i > 1000)
return i;
if (i < 1)
return i-rekursiv(2*i-2);
else
return i+rekursiv(i);
}