In diesem Kapitel lernen Sie, Wenn-Dann-Beziehungen und komplexe Bedingungen für den Programmablauf zu definieren.
10 Programmablaufsteuerung und logische Ausdrücke 

Entscheidungen zu treffen ist schwer. Gesunder Menschenverstand und logische Ausdrücke in der Programmierung scheinen manchmal widersprüchlich zu sein: Warum tut der Rechner nie das, was man möchte? In diesem Kapitel lernen Sie die richtigen Regeln im Umgang mit dem Programmablauf.
Noch in Kapitel 9, »Mit Daten in einer Datenbanktabelle arbeiten«, blieb Ihnen nichts anderes übrig, als beispielsweise den Returncode der DELETE-Anweisung in eine Liste zu schreiben. Damit hätte sich der Programmablauf überhaupt nicht geändert, wenn ein Fehler aufgetreten wäre und der Returncode einen anderen Wert als 0 zurückgeliefert hätte, sondern es wäre die gleiche Liste produziert worden, nur mit kaum sinnvollen Ergebnissen.
Für die Praxis ist es sinnvoller, eine Fallunterscheidung zu treffen, um beispielsweise Fehlerfälle zu erkennen und gesondert zu behandeln. Vielleicht ist es in bestimmten Fällen sogar besser, überhaupt keine Liste mehr zu erzeugen und stattdessen das Programm mit einer Meldung zu beenden. In diesem Kapitel erlernen Sie das Handwerkszeug für solche Fälle: die Programmablaufsteuerung und die logischen Ausdrücke.
10.1 Kontrollstrukturen 

Ein Programm muss eine Aufgabe lösen, die wiederum aus Teilaufgaben besteht. Einige Teilaufgaben müssen in jedem Fall gelöst werden, andere nur unter bestimmten Bedingungen, manche alternativ. Zu jeder Teilaufgabe gehören Anweisungen, die wiederum in Anweisungsblöcken zusammengefasst sind. Ein Anweisungsblock kann nur aus einem einzigen Kommando bestehen, beispielsweise einer WRITE-Anweisung, andererseits kann er aber auch komplexe Prozesse beinhalten.
Unter welchen Rahmenbedingungen ein Anweisungsblock durchlaufen wird, regeln Anweisungen für die Programmablaufsteuerung, die sogenannten Kontrollstrukturen. Sie enthalten die Bedingung und die dazugehörende Aktion. Die Programmablaufsteuerung hat die Aufgabe, die Teilaufgaben sinnvoll durch Kontrollstrukturen zu verbinden. Es gibt Kontrollstrukturen für Fallunterscheidungen und für Wiederholungen.
[zB] Kontrollstrukturen im richtigen Leben
Das mag abstrakt klingen, ist es aber nicht, denn solche Kontrollstrukturen existieren genauso im täglichen Leben: Wir gehen ins Kino, wenn wir Zeit haben, jemand mitgeht und uns der Film interessiert – anderenfalls bleiben wir zu Hause und lesen. Nur sagt das niemand folgendermaßen:
IF Zeit AND Begleitung AND Interesse,
THEN Kino,
ELSE zu Hause bleiben und lesen,
ENDIF.
Eine Kontrollstruktur hat einen Strukturanfang und ein Strukturende. Im gerade genannten Beispiel ist der Strukturanfang die Anweisung IF und das Strukturende die Anweisung ENDIF: Beide Kontrollstrukturanweisungen gehören immer zusammen, wie Klammern in der Mathematik. Dazwischen stehen die Anweisungsblöcke für die Teilaufgaben. Kontrollstrukturen verzweigen in die relevanten Anweisungsblöcke oder wiederholen bestimmte Anweisungen in einer Schleife.