BEND

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