Kontrollstrukturen, Teil 6

goto

Selbst das verpönte goto ist im Sprachumfang von C enthalten.
Mit goto erfolgt ein Sprung auf eine innerhalb derselben Funktion definierte Sprungmarke (Label).

Die Sprungmarke kann irgendwo innerhalb der gleichen Funktion liegen und wird mit einem Doppelpunkt abgeschlossen.

Ein Sprung in eine andere Funktion hinein ist nicht möglich!

Im Normalfall ist goto eher tunlichst zu vermeiden. Es gibt allerdings Situationen, in denen goto durchaus sinnvoll sein kann, zum Beipiel bei der Fehlerbehandlung bei ineinander verschachtelten Schleifen.
Beachten Sie bitte folgendes Programmsegment:

for (...) {

         for (...) {

                   while (...) {

                            ...

                            ...

                            if (katastrophe) goto ERROR;

                   }

         }

}

ERROR:

Überreste abräumen

Das Problem könnte hier durchaus auch ohne goto gelöst werden. Allerdings wäre der Aufwand dazu bedeutend grösser.