Kontrollstrukturen in Delphi

Quellcode. [© Philipp Gerbig]

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;

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.