Abbruchbedingung



Eine Abruptbedingung ist in der Informatik eine Bedingung, die erfüllt sein muss, damit ein Vorgang beendet wird. Jede Schleife oder rekursive Funktion ist jedoch eine Sache der Abbrechbedingung, und ist kein einziger endloser Lauf soll.

Die Existenz einer Abbruchbedingung garantiert aber nicht den Abbruch: sie ist notwendig , aber nicht hinreichend . Fehler in der Spezifikation , die sich darin niederschlägt, dass die Abbruchbedingung, nicht wahrnehmbar ist. In solchen Fällen entsteht eine Endlosschleife . Es sind aber keine unerfüllbaren Abbruchbedingungen, über Schleifen zu laufen.

Beispiel

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

int zweiHoch ( int zu )
{
 wenn ( in == 0 )
 return 1 ; // zwei hoch 0 ist 1
 sonst
 zurück 2 * zweiHoch ( i - 1 ); // zwei hoch ist zwei mal (zwei hoch i-1)
}

Ruft man die Funktion mit Werten größer oder gleich 0 auf, erhält man die entsprechenden Zweierpotenz. Die Abbruchbedingung ist gut, aber die Rekursion ist endlos, fällt man einen negativen Parameter übergibt.

Siehe auch

  • Bezüglich Schleifer-Abbruch siehe auch Pause und weiter .

Literatur

  • Wolfgang Schneider: Strukturierte Programmmaster in BASIC . Friedrich Vieweg & Sohn Verlagsgesellschaft, Wiesbaden 1985, S. 256 ff.
  • Cornelia Heinisch, Joachim Goll, Frank Müller: Java als erste Programmiersprache . 4. Auflage, BG Teubner Verlag, Wiesbaden 2005, ISBN 3-519-32642-6 , S. 286 ff.