BEND
BEND | |
Syntax: | BEGIN <Anweisungen> BEND |
Parameter | |
<Anweisungen>: Liste von Anweisungen, auch über Zeilengrenzen hinweg. | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Programmstruktur |
Aufgabe: | Ende eines Anweisungsblocks für einen THEN- oder ELSE-Zweig |
Abkürzung: | beN |
Token: | $fe $19 (254 25) |
Verwandte Befehle | |
BEGIN, ELSE, IF, THEN |
Anmerkung: Dieser Artikel beschreibt den BASIC-Befehl BEND ab Commodore BASIC V7.0 oder höher.
Die Anweisung BEND schließt einen BEGIN-BEND-Anweisungsblock in einer IF-THEN-ELSE-Konstruktion ab, der sich auch über mehrere Zeilen erstrecken kann. Ein solcher Block sollte mit einer passenden BEGIN-Anweisung (sozusagen als öffnende Klammer) eingeleitet werden. Fehlt zum BEGIN das zugehörige BEND, bricht das Programm mit der Fehlermeldung ?BEND NOT FOUND ERROR ab. Im umgekehrten Fall, also bei einem BEND, das kein zugehöriges BEGIN hat, endet ein Zweig eventuell "vorzeitig" und das überflüssige BEND wird ignoriert.
Alle unmittelbar nach dem BEND folgenden Zeichen werden bis zum nächsten Befehlstrenner (":") oder Zeilenende ignoriert.
Ein THEN- oder ELSE-Zweig endet nicht zwangsläufig mit der BEND-Anweisung, sondern in der gleichen Zeile folgende Befehle gehören noch zum jeweiligen Zweig.
Beispiele[Bearbeiten | Quelltext bearbeiten]
Eine klassische IF-THEN-ELSE-Konstruktion mit mehrzeiligen THEN- und ELSE-Zweigen, die über das BEND hinaus gehen:
100 IF B=0 THEN BEGIN REM IM THEN-ZWEIG 110 :PRINT "THEN-ZWEIG" 120 :BEND: PRINT "NOCH IM THEN-ZWEIG" 130 ELSE BEGIN REM IM ELSE-ZWEIG 140 :PRINT "ELSE-ZWEIG" 150 :BEND : PRINT "NOCH IM ELSE-ZWEIG"
Einrückungen mit ":" am Zeilenanfang dienen nur der Veranschaulichung der Struktur.
100 IF B=0 THEN BEGIN REM IM THEN-ZWEIG 110 :PRINT "THEN-ZWEIG" ... langer THEN-Zweig über viele Zeilen erstreckend 490 :BEND B=0 500 ELSE BEGIN ... langer ELSE-Zweig über viele Zeilen erstreckend 990 :BEND B<>0
Zeichen nach dem BEND, die ignoriert werden, dienen hier der Übersicht und den dazugehörigen Zweig zu identifizieren, z.B. durch Angabe der jeweiligen Eintrittsbedingungen für diesen Zweig.
100 IF B=0 THEN REM EIN FEHLER: BEGIN FEHLT HIER! 110 :PRINT "THEN-ZWEIG" 120 :BEND
Ein fehlendes BEGIN in Zeile 100 führt dazu, dass Zeile 110 immer ausgeführt wird, egal wie das vorige IF-THEN ausfällt. Das BEND in Zeile 120 wird dann ignoriert, wird vom Interpreter nicht als Fehler bemängelt.
APPEND | BANK | BEGIN | BEND | BLOAD | BOOT | BSAVE | BUMP | CATALOG | COLLISION | COLOR | CONCAT | DCLEAR | DCLOSE | DOPEN | DVERIFY | ENVELOPE | FAST | FETCH | FILTER | GO64 | MOVSPR | (OFF) | PEN | PLAY | POINTER | POT | (QUIT) | RECORD | RREG | RSPCOLOR | RSPPOS | RSPRITE | RWINDOW | SLEEP | SLOW | SOUND | SPRCOLOR | SPRDEF | SPRITE | SPRSAV | STASH | SWAP | TEMPO | WIDTH | WINDOW | XOR