Abbruchbedingung
# Abbruchbedingung

Eine Abbruchbedingung ist in der Informatik eine Bedingung, die erfüllt sein muss, damit ein Vorgang beendet wird. Jede Schleife oder rekursive Funktion benötigt deswegen eine Abbruchbedingung, wenn sie nicht endlos laufen soll.

Die Existenz einer Abbruchbedingung garantiert aber nicht den Abbruch: sie ist notwendig, aber nicht hinreichend. Fehler in der Spezifikation der Schleife oder der rekursiven Funktion, sowie Eingaben, die nicht der Spezifikation entsprechen, können die Abbruchbedingung unerfüllbar machen. In diesem Fall entsteht eine Endlosschleife. Es benötigt aber keine unerfüllbaren Abbruchbedingungen, um Schleifen endlos laufen zu lassen.

## Beispiel

In der folgenden Funktion (Syntax von C++ bzw. Java) stellt die markierte Zeile die Abbruchbedingung dar; ist diese erfüllt, wird der rekursive Abstieg beendet:

Ruft man die Funktion mit Werten größer oder gleich 0 auf, erhält man die entsprechende Zweierpotenz. Obwohl die Abbruchbedingung erfüllbar ist, schreitet die Rekursion jedoch endlos fort, falls man einen negativen Parameter übergibt.

