Kontrollfluss

Aus KGS-Wiki

graph TD start(("Start")) --> a0[/"Eingabe a"/] --> a1["a := a × a"] --> a2[/"Ausgabe a"/] --> ende(("Ende"))

Der Kontrollfluss eines einfachen Algorithmus,
dargestellt als Programmablaufplan

Als Kontrollfluss bezeichnet man die Reihenfolge, in der die Anweisungen in einem Computerprogramm abgearbeitet werden. Eine einfache Sequenz von Anweisungen wird Schritt für Schritt von oben nach unten durchgegangen. Durch Kontrollstrukturen wie bedingte Anweisungen oder Wiederholungen kann davon jedoch abgewichen werden. Mit Methoden der nebenläufigen Programmierung ist es auch möglich, Programmteile gleichzeitig ablaufen zu lassen.

Der Kontrollfluss eines Programms kann z.B. mit einem Programmablaufplan oder einem Aktivitätsdiagramm visualisiert werden. Der Kontrollfluss wird dann durch Pfeile dargestellt.

Im einfachsten Fall, so wie oben rechts abgebildet, verläuft der Kontrollfluss linear von oben nach unten, sodass die Anweisungen strikt sequenziell abgearbeitet werden. Dies erleichtert insbesondere das Testen, da so schon ein einziger ausreicht, um den gesamten Kontrollfluss abzudecken.

Befehlszähler

Der debug-Befehl zeigt links die

Auf der Ebene der Maschinensprache ist ein Programm eine Abfolge von Maschinenbefehlen, die durchnummeriert sind. Ein Befehlszähler bestimmt während der Ausführung eines Programms, welcher Befehl als nächstes ausgeführt werden soll. Normalerweise wird diese Zähler nach dem Abarbeiten eines Befehls um 1 hochgezählt.

Kontrollstrukturen

graph TD start(("Start")) --> ina[/"Eingabe a"/] --> setb["b := 2"] --> w1{"a ≥ b?"} -- nein --> ende(("Ende")) w1 -- ja --> w2{"a % b = 0?"} -- ja --> diva["a := a / b"] --> outb[/"Ausgabe b"/] --> w2 w2 -- nein --> if{"b = 2?"} -- ja --> b3["b := 3"] --> w1 if -- nein --> b4["b := b + 2"] --> w1

Ein etwas komplizierterer Algorithmus mit nicht-linearem Kontrollfluss

Als Kontrollstrukturen werden Konstrukte bezeichnet, die es beim Programmieren ermöglichen, vom linearen Kontrollfluss abzuweichen und Bedingungen, Verzweigungen oder Wiederholungen zulassen.

Sprung

Siehe auch Sprunganweisung

Mit einer Sprunganweisung, die in vielen Programmiersprachen goto heißt, wird

🏗
Baustelle

Dieser Abschnitt wird gerade von Sn überarbeitet


Bedingte Anweisung

Siehe auch Bedingte Anweisung

Mit einer bedingten Anweisung wird der Kontrollfluss verzweigt, sodass eine Sequenz von Anweisungen, wenn eine gegebene Bedingung nicht erfüllt ist, nicht ausgeführt wird. Alternativ können in diesem Fall auch andere Anweisungen ausgeführt werden.