ELSE (TSB)
ELSE (TSB) | |
Syntax: | ELSE |
Parameter | |
keine | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Strukturkontrolle |
Aufgabe: | Leitet den Nicht-Wahr-Zweig einer Bedingungsklausel ein |
Abkürzung: | eL |
Token: | $64 $47 (100 71) |
Verwandte Befehle | |
DO - DONE - DO NULL - RCOMP - IF - THEN |
Dieser Artikel beschreibt das TSB-Schlüsselwort ELSE (TSB).
Das entsprechende Simons'-Basic-Schlüsselwort lautet ebenfalls ELSE.
Typ: Anweisung Syntax: ELSE
ELSE ergänzt den BASIC-V2-Befehl IF (der nur einen Wahr-Zweig in seiner Bedingungsklausel kennt; siehe THEN) um einen weiteren Zweig, den Nicht-Wahr-Zweig. Das bedeutet, dass in der gleichen BASIC-Zeile, in der IF..THEN steht, in TSB auch folgen kann, was passieren soll, wenn die Bedingung nach IF nicht zutrifft. (In BASIC V2 wird dieser Fall nicht ausdrücklich behandelt und muss ggf. extra abgefragt werden.)
Der Nicht-Wahr-Zweig (mit ELSE) muss vom Wahr-Zweig mit einem Doppelpunkt abgetrennt werden.
Anders als beim ELSE von Simons' Basic muss in TSB das ELSE nicht mit einem Doppelpunkt von der folgenden Anweisung getrennt werden. In TSB führt ELSE einen Stack der zuletzt verwendeten Wahrheitswerte, so dass eine IF-Abfrage mit ELSE-Zweig nicht durcheinander gerät, auch wenn im Wahr-Zweig Prozeduraufrufe stattfinden, bei denen sich durch weitere IF-Abfragen der aktuelle Wahrheitswert ändert.
In TSB hat der Programmierer darüber hinaus mit den Befehlen DO und DONE die Möglichkeit, die beiden Bedingungszweige über beliebig viele BASIC-Zeilen zu verlängern. ELSE trennt auch hier die Wahr- und Nicht-Wahr-Zweige voneinander (Syntax wie in Beispiel 2).
Beispiele[Bearbeiten | Quelltext bearbeiten]
Beispiel 1[Bearbeiten | Quelltext bearbeiten]
10 PRINT "test "; 20 FETCH "jn",1,x$ 30 IF x$ = "j" THEN PRINT "ja": ELSE PRINT "nein"
Je nachdem, ob der Benutzer "j" oder "n" drückt, erscheint eine andere Antwortausgabe.
Beispiel 2[Bearbeiten | Quelltext bearbeiten]
10 PRINT "test "; 20 FETCH "jn",1,x$ 30 IF x$ = "j" THEN DO 40 : PRINT "ja" 50 ELSE 60 : PRINT "nein" 70 DONE
Das gleiche Ergebnis wie bei Beispiel 1, aber verteilt auf mehrere Zeilen.
$$ | %% | AT | CALL | CENTER | CHECK | COLD | COLOR | COPY | CLS | CSET | D! | D!PEEK | D!POKE | DIR | DISK | DISPLAY | DIV | DO | DO NULL | DRAW TO | DUMP | DUP | ELSE | ERROR | EXEC | FETCH | FIND | GRAPHICS | INSERT | INST | JOY | KEY | KEYGET | LIN | MAP | MEMCLR | MEMCONT | MEMDEF | MEMLEN | MEMLOAD | MEMOR | MEMPEEK | MEMPOS | MEMREAD | MEMRESTORE | MEMSAVE | MERGE | MOB ON/OFF | MOBCOL | MOD | MOVE | MULTI | NRM | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PLACE | RENUMBER | RESUME | RETRACE | SCRLD | SCRSV | SOUND | TEXT | TRACE | USE | WAVE | X!