CAOS-Programmierung: Befehlsgruppen: Flow
Erscheinungsbild
<< Befehlsgruppen | Inhaltsverzeichnis >>
Vergleiche
[Bearbeiten]DOIF (Befehl) Bedingung (Bedingung)
Führt einen Block aus, wenn die getestete Bedingung wahr ist. Der Block endet mit ELSE, ELIF or ENDI. Es können zwei oder mehrere Bedingungen mittels AND oder OR verglichen werden. Der Vergleich zwischen Variable und Wert geschieht mit EQ, NE, GT,GE, LT, LE, oder mit =, <>, >, >=, <, <=.Beispiel DOIF ov00 GE 5 AND ov00 LT 10
--- code block 1 ---
ELIF ov00 GE 10 OR ov00 LT 100
--- code block 2 ---
ELSE
--- code block 3 ---
ENDI Bedingungen werden von rechts nach links ausgewertet , also ist "a AND b OR c" das selbe wie "(a AND b) OR c", aber NICHT wie "a AND ( b OR c )".
DOIF sollte nicht überladen werde d.h. nicht zu viele Bedingungen mit AND und OR verknüpfen.Dies erleichtert das Fehler suchen
ELIF (Befehl) Bedingung (Bedingung) mehrfaches else
ELseIF Befehl folgt auf DOIF. Wenn die Bedingung des DOIF-Blocks falsche ist , wird jeder folgende ELIF Befehl auf einmal ausgeführt .Nur die erste wahre Bedingung wird als Block ausgeführt.
ELSE (Befehl)
ELSE schließt DOIF und ELIF(s). Ist keine Bedingung wahr , so wird der ELSE block ausgeführt.
ENDI (Befehl)
Schließt alle DOIF...ELIF...ELSE... .
Schleifen
[Bearbeiten]LOOP (Befehl)}
Start einer Schleife LOOP..UNTL order LOOP..EVER.
EVER (Befehl)
Ende der LOOP..EVER Schleife,welche für immer durchlaufen wird .
UNTL (Befehl) Bedingung (Bedingung)
Ende der LOOP..UNTL Schleife. Diese Schleife wird solange ausgeführt bis die Abbruchbedingung erfüllt ist. Siehe DOIF weiter Informationen.Beispiel
* LOOP .. UNTL SETV VA00 0 LOOP ADDV VA00 1 UNTL VA00 eq 3 DOIF VA00 eq 3 DBG: OUTS "LOOP .. UNTL" ELSE DBG: OUTS "LOOP .. UNTL Fehler" ENDI
REPE (Befehl)
Schließt die REPS Schleife.
REPS (Befehl) Anzahl (integer)
Durchläuft eine Schleife Anzahl mal.Beispiel
* REPS .. REPE SETV VA00 0 REPS 4 SETV VA01 0 ADDV VA00 1 REPE DOIF VA00 eq 4 DBG: OUTS "REPS .. REPE" ELSE DBG: OUTS "REPS .. REPE Fehler" ENDI
Unterprogramme
[Bearbeiten]GOTO (Befehl) Bestimmungsort (Marke)
Sollte man nie alleine verwenden. Springt direkt zu einer von SUBR definierten Marke. Der Befehl wird nur in DOIF Blocks verwendet. See SUBR.
GSUB (Befehl) Bestimmungsort (Marke)
Springt in ein Unterprogramm definiert von SUBR..
RETN (Befehl)
Ende des Unterprogramms. Darf nicht innerhalb von Schleifen stehen (z.B. LOOP#..EVER oder ENUM...NEXT etc...)! .
SUBR (Befehl)
Definiert ein Unterprogramm . Nach den Befehl steht die Einsprungmarke. Marke muß mit einem Buchstaben beginnen und Groß- Kleinschreibung beachten . Unterprogramme sollen am Ende eines Scriptes stehen..
Beispiel * TEST GSUB SETV VA00 0 GSUB test DOIF VA00 eq 1 DBG: OUTS " GSUB" ELSE DBG: OUTS "not GSUB" ENDI ... SUBR test SETV VA00 1 RETN
<< Befehlsgruppen | Inhaltsverzeichnis >>