In diesem Artikel werde ich die Kontrollstrukturen von Delphi erklären.
Dazu zählen “begin und end“, die “if-Anweisung” und die “case-Anweisung“.
Sie stellen die Grundelemente von Delphi und vielen anderen Programmiersprachen dar.
“begin” und “end”
“begin” und “end” stellt für viele ein Hindernis dar, allerdings ist deren Verwendung total simpel: Mit ihnen gruppiert man Anweisungen. Ihre Verwendung lässt sich dabei vom Namen her erschließen.
Anhand von “begin” und “end” kann man daher erkennen, welche Anweisungen zu einer Prozedur, Funktion etc. gehören.
begin
Anweisung1;
Anweisung2;
{...}
Anweisung3;
end;
Bitte beachtet, dass nach “begin” niemals ein Semikolon folgt. Für “end” lässt sich keine klare Aussage treffen. Generell kommt hier immer ein Semikolon, bis auf einige Ausnahmen.
Eine Ausnahme ist beispielsweise das “end“, dass die Unit abschließt. Auf dieses folgt ein Punkt. Andere Ausnahmen finden sich beispielsweise bei der “if-Anweisung”, aber dazu später mehr.
Die if-Anweisung
Eine if-Anweisung überprüft, ob eine angegebene Bedingung – ein sogenannter Bool’scher Ausdruck – der Fall ist. Man nennt sie Bool’sche Ausdrücke, weil entweder der Wert “true” für “wahr = ist gegeben” oder der Wert “false” für “falsch = Bedingung ist nicht gegeben” zurückgegeben wird.
Eine einfache if-Anweisung sieht folgendermaßen aus:
if zahl1 = zahl2 then
label1.caption := 'gleich';
Sie funktioniert also nach folgendem System:
if {Bool'scher Ausdruck} then
{Anweisung}
Sollten mehr als eine Anweisung ausgeführt werden, so sollte man diese mit den eben kennen gelernten Begriffen “begin” und “end” eingekapselt werden:
if {Bool'scher Ausdruck} then
begin
Anweisung1;
Anweisung2;
end;
else
Mit dem Befehl “else” können Anweisungen angegeben werden, die alternativ ausgeführt werden sollen, also wenn der Bool’sche Ausdruck nicht gegeben ist.
Zu Beachten ist, dass bei der letzten Anweisung vor dem “else” kein Semikolon als Abschluss gesetzt werden darf!
if {Bool'scher Ausdruck} then
Anweisung1
else
Anweisung;
Das gleiche gilt auch für mehrere, gekapselte Anweisungen. Dann darf das “end” kein Semikolon haben – Die eben genannte Ausnahme.
if {Bool'scher Ausdruck} then
begin
Anweisung1;
Anweisung2;
end
else
Anweisung;
Der letzte Befehl einer if-Anweisung muss selbstverständlich wieder mit einem Semikolon abgeschlossen werden.
Die case-Anweisung
Jedoch ist die if-Anweisung nicht die einzige Kontrollstruktur, die eine Verzweigung des Programms erlaubt. Es gibt auch noch die so genannte “case-Anweisung”.
Benötigt wird sie nicht wirklich, allerdings ist sie sehr praktisch und kurz, was Zeilen und bei sehr großen Programmen damit Rechenzeit einspart.
So möchte ich an einem Beispiel mit der Variable “zahl” zeigen, was der Unterschied zur if-Anweisung ist:
if Zahl = 0 then
Anweisung1;
if Zahl = 1 then
Anweisung2;
if Zahl = 2 then
Anweisung3;
if Zahl = 3 then
Anweisung4;
Mit der case-Anweisung sieht das Ganze folgendermaßen aus:
case Zahl of
0: Anweisung1;
1: Anweisung2;
2: Anweisung3;
3: Anweisung4;
end;
Und als wäre das noch nicht genug, kann man das ganze auf die Spitze treiben und der Case-Anweisung Mengen anstatt nur Zahlen übergeben.
Außerdem kann man natürlich auch einen else-Zweig anfügen.
case Zahl of
0..3, 5: Anweisung1;
4: Anweisung2;
else
Anweisung3;
end;