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.
Wiktionary: Abbruchbedingung – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.