Unter Verzweigungen versteht man die Unterbrechnung des linearen Programflusses und das Fortsetzen der Programausführung an einer anderen Stelle. Es gibt die unbedingten Verzweigungen GOTO und GOSUB, und die bedingte Verzweigung IF.
Sprungmarken werden entweder als Zahl oder als "String" gefolgt von einem Doppelpunkt angegeben.
1964:..."Hell":...GOTO 1964...GOTO "Hell"GOTO "label"Springt zum angegeben Sprungziel "label", d.h. die Programmausführung wird nach der Sprungmarke fortgesetzt, wobei diese Sprungziel auch als Variable oder Berechnungsausdruck angegeben werden kann, dadurch ist es möglich das Sprungziel zu berechnen:
choice = 3GOTO 100+choiceEND101:PRINT "ZIEL 101"END102:PRINT "ZIEL 102"END103:PRINT "ZIEL 103"ENDACHTUNG! Das Sprungziel wird nur einmalig berechnet und dieses Ergebnis bis zum Ende des Skripts gespeichert, d.h. ein innerhalb des Skripts veränderliches Sprungziel ist derzeit nicht möglich (gilt auch für GOSUB).
FOR i = 1 TO 4GOSUB i * 100 ! wird nur beim 1. Aufruf berechnet (Ergebnis=100) und bis zum Ende des Skripts gespeichertNEXT iEND100: ! wird 4x aufgerufenTEXT2 0 , 1 , "i=1"RETURN200: ! wird nie aufgerufenTEXT2 0 , 2 , "i=2"RETURN300: ! wird nie aufgerufenTEXT2 0 , 3 , "i=3"RETURN400: ! wird nie aufgerufenTEXT2 0 , 4 , "i=4"RETURNDieser Codeabschnitt ruft nicht wie erwartet, die Subroutinen 100, 200, 300 und 400 auf, sondern, da das Sprungziel nur einmal berechnet wird, 4x die Subroutine 100.
GOSUB "label"Springt zum angegebene Sprungziel "label", legt aber den Absprungpunkt auf den Returnstack. Mit RETURN kann man an die aufrufende Stelle zurückspringen. Durch die Verwendung eines Stacks können GOSUB-Befehle verschachtelt werden. Wie bei GOTO ist es auch bei GOSUB möglich das Sprungziel als Variable oder Berechnungsausdruck anzugeben.
profil = "I100"GOSUB profilEND"I100":PRINT "PROFIL I100"RETURN"I110":PRINT "PROFIL I110"RETURN"I120":PRINT "PROFIL I120"RETURNNimmt die oberste Rücksprungadresse vom Returnstack und sprint an den Aufrufpunkt zurück. Ab hier ist der Absprungpunkt des vorangegangenen GOSUB-Befehls die oberste Adresse auf dem Returnstack.
GOSUB "Setup"GOSUB "Main"GOSUB "CleanUp"END"Setup":...RETURN"Main":...GOSUB "SubRoutine"...RETURN"CleanUp":...RETURN"SubRoutine":...RETURNDie Programausführung ist abhängig von condition, ist condition wahr wird der THEN-Block aufgeführt, sonst der ELSE-Block.
IF condition THEN...ELSE...ENDIFFür das bedingte Verzweigen im Programmablauf gibt es 2 Spezialfälle:IF condition GOTO targetIF condition GOSUB targetsiehe Vergleichsoperatoren