6. Anweisungen
 
zurück
6.3  If - Anweisung


Eine If-Anweisung (if_statement <BNF>) selektiert eine oder keine der durch die Anweisung eingeschlossenen Anweisungsfolgen und führt diese aus.

if BEDINGUNG_1 then
-- Anweisungsfolge, die auszuführen ist, wenn Bedingung_1 'TRUE' ergibt
elsif Bedingung_2 then -- alternatives if
-- Anweisungsfolge, die auszuführen ist, wenn Bedingung_2 'TRUE' ergibt
elsif Bedingung_3 then -- weitere Bedingungen, wenn erforderlich
-- Anweisungsfolge, die auszuführen ist, wenn Bedingung_3 'TRUE' ergibt
else
-- Anweisungsfolge, die auszuführen ist, wenn alle vorhergehenden
-- Bedingungen 'FALSE' ergeben
end if;


Folgendes ist zu beachten:

Die nach "if" oder "elsif" aufgeführten Bedingungen werden sequentiell ausgewertet.

Es wird diejenige Anweisungsfolge ausgewählt und ausgeführt, deren zugehörige Bedingung als erste in dieser Reihenfolge den Wert "True" annimmt. Im Anschluß daran wird die Ausführung der If-Anweisung beendet.

Enthält die If-Anweisung einen Else-Zweig und sind alle vorangegangenen Bedingungen "False", so wird die Anweisungsfolge des Else-Zweiges ausgeführt.


Beispiele für If-Anweisungen:

Einfache If-Anweisung

if Zaehler_1 < 0 then
   Zaehler_1 := 0;
end if;


Diese If-Anweisung bringt keine oder genau eine Anweisungsfolge zur Ausführung.
Ist die Bedingung ZAEHLER_1 < 0 erfüllt, wird die Anweisungsfolge im then-Teil ausgeführt, die nur aus der Anweisung ZAEHLER_1:=0 besteht.
Ist die genannte Bedingung nicht erfüllt, wird keine Anweisungsfolge ausgeführt, und die Ausführung der If-Anweisung ist beendet.

if VENTILE(1).OFFEN then
   VENTILE(2).OFFEN:=True;
   VENTILE(3).OFFEN:=False;
else
   VENTILE(2).OFFEN:=False;
   VENTILE(3).OFFEN:=True;
end if;


Diese If-Anweisung bringt genau eine von zwei alternativen Anweisungsfolgen zur Ausführung.
Ist die Bedingung VENTILE(1).OFFEN erfüllt, wird die Anweisungsfolge im Then-Teil ausgeführt: VENTILE(2).OFFEN wird auf True gesetzt und VENTILE(3).OFFEN auf False.

if SPANNUNG_1 > SPANNUNG_2 then
   SPANNUNG_1:=SPANNUNG_2;
elsif SPANNUNG_1 < SPANNUNG_2 then
   SPANNUNG_2:=SPANNUNG_1;
else
   null;
end if;


Diese If-Anweisung bringt genau eine von drei alternativen Anweisungsfolgen zur Ausführung.

Ist SPANNUNG_1 größer als SPANNUNG_2, wird die Anweisungsfolge im Then-Teil ausgeführt.
Es wird also die einzige Anweisung SPANNUNG_1:=SPANNUNG_2; ausgeführt.

Ist SPANNUNG_1 kleiner als SPANNUNG_2, wird die Anweisungsfolge im Elsif-Teil ausgeführt: SPANNUNG_2:=SPANNUNG_1;.

Ist schließlich keine der gerade genannten Bedingungen erfüllt - ist also SPANNUNG_1 gleich SPANNUNG_2 - passiert nichts:
die Null-Anweisung im Else-Teil wird ausgeführt.


Die abgefragten Bedingungen schließen sich übrigens wechselseitig aus, was den Ablauf der If-Anweisung transparenter macht.
Ist die genannte Bedingung nicht erfüllt, wird die Anweisungsfolge im Else-Teil ausgeführt. Die Eigenschaften für das zweite und das dritte Ventil werden umgekehrt gesetzt.


 
zurück
 Index   Ada Tour - Dokumentation  
© 2003 Förderverein Ada Deutschland e.V.