Folgende Kontrollanweisungen können verwendet werden:
PROGRAMM: | AUSGABE: |
---|---|
Bedingung | if...then...else |
Kontrollierte Schleife | while...do |
Schleife über Gruppenelemente | for..in..do |
Fallunterscheidung | switch...case... |
Diese Anweisung ist in zwei Formen zulässig:
(1) | if <logical_expression> then |
<statements für logical_expression true> | |
end | |
(2) | if <logical_expression> then |
<statements für logical_expression true> | |
else | |
<statements für logical_expression false> | |
end |
Diese Anweisung wird wie die anderen Kontrollanweisungen auch mit einem end abgeschlossen. Die else..if-Konstruktion wird durch einen if-Block innerhalb des else-Blocks realisiert.
While-Schleifen sind die Schleifenkonstrukte von AQL. Da for-Schleifen im herkömmlichen Sinn nicht existieren, werden auch diese über while abgebildet. Diese Anweisung hat die Form:
while <logical_expression> do
<statements für logical_expression true>
end
Solange der logische Ausdruck in der while-Anweisung den Wert "true" annimmt, werden die Anweisungen bis zur zugehörigen end-Anweisung ausgeführt, und die Ausführung wird bei der while-Anweisung fortgesetzt. Ergibt der Kontrollausdruck in der while- Anweisung den Wert "false", so wird hinter die zugehörige end-Anweisung verzweigt.
Es wird nicht untersucht, ob eine Endlosschleife vorliegt. Um eine Endlosschleife zu vermeiden, muß die Bedingung nach einer Ausführung "false" werden.
Diese Anweisung, die sich von gleichlautenden Anweisungen anderer Sprachen unterscheidet und nur zum Durchlaufen von Gruppen dient, hat die Form:
for <loop_var> in <group_expression> do
<statements für jedes element in group_expression>
end
Das Schleifensymbol <loop_var> wird automatisch angelegt.
Als <group_expression> sind alle zulässigen Gruppenausdrücke beliebiger Komplexität
erlaubt.
(1) | switch <expression> |
case <alternative_1>: | |
<statements für expression=alternative_1> | |
case <alternative_2>: | |
<statements für expression=alternative_2> | |
... | |
case <alternative_n>: | |
<statements für expression=alternative_n> | |
end | |
(2) | switch <expression> |
case <alternative_1>: | |
<statements für expression=alternative_1> | |
case <alternative_2>: | |
<statements für expression=alternative_2> | |
... | |
case <alternative_n>: | |
<statements für expression=alternative_n> | |
otherwise: | |
<statements für alle anderen Fälle> | |
end |
Es ist Voraussetzung, daß der Typ von <expression> und <alternative_1> einen Vergleich zuläßt. Falls in der Form ohne otherwise keine Alternative gefunden wird, wird keine Anweisung ausgeführt.
Im Gegensatz zu C wird nur die Alternative durchlaufen, die gültig ist. Die nachfolgenden Alternativen werden übersprungen!
◀ Ausdrücke | Funktionen ▶ |