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:
int zweiHoch(int i)
{
if (i == 0)
return 1; // zwei hoch 0 ist 1
else
return 2*zweiHoch(i-1); // zwei hoch i ist zwei mal (zwei hoch i-1)
}
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.
Siehe auch
Literatur
- Wolfgang Schneider: Strukturiertes Programmieren in BASIC. Friedrich Vieweg & Sohn Verlagsgesellschaft, Wiesbaden 1985, S. 256 ff.
- Cornelia Heinisch, Joachim Goll, Frank Müller: Java als erste Programmiersprache. 4. Auflage, B.G. Teubner Verlag, Wiesbaden 2005, ISBN 3-519-32642-6, S. 286 ff.
Weblinks
- Java Schleifen (abgerufen am 11. Februar 2016)
- Schleifen mit Abbruchbedingung (abgerufen am 11. Februar 2016)