ELSE (TSB)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
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.