Sprünge erlauben bei der Abarbeitung von Anweisungsfolgen eine Abweichung von der Reihenfolge, in der die Anweisungen im Quelltext stehen und in der sie ausgeführt würden. Ein Sprung wird durch die Sprunganweisung goto() ausgelöst, in deren Klammern ein Bezeichner als Sprungziel anzugeben ist. Das Sprungziel wird durch ein Label gekennzeichnet; indem vor der ersten nach dem Sprung auszuführenden Anweisung die label()-Anweisung als Sprungmarke eingefügt wird:
print( "Letzte Anweisung vor dem Sprung" ) goto(Ziel) # Sprunganweisung print( "Diese Anweisung wird übersprungen." ) label(Ziel ) # Sprungziel print( "Erste Anweisung nach dem Sprung" )
Die erste Anweisung dieses Beispiels gibt den Text Letzte Anweisung vor dem Sprung aus, bevor die goto( Ziel)-Anweisung mit der ersten, auf die label(Ziel)-Anweisung folgenden Anweisung fortfahren lässt. Beachte, dass Ziel ein Bezeichner, aber kein Stringliteral sein kann.
Die Kombination von Sprüngen und Verzweigungen ermöglicht die Realisierung von Schleifen. Eine Schleife veranlasst die wiederholte Ausführung von Anweisungen. Das Beispiel
# Anweisungen vor der Schleife label( Schleifenkopf ) # Schleifenrumpf mit Anweisungen if(<boolean expression>) # Verzweigung goto(Schleifenende) else goto(Schleifenkopf) endif label( Schleifenende ) # Anweisungen nach der Schleifewiederholt alle Anweisungen zwischen den Sprungmarken Schleifenkopf und Schleifenende, bis die durch den Booleschen Ausdruck <boolean expression> gegebene Bedingung erfüllt ist. Diese Abbruchbedingung wird nach jedem Schleifendurchgang erneut geprüft.
Derartige Konstruktionen sind allerdings obsolet und schlechter Programmierstil, da für diesen Zweck übersichtlichere Konstrukte bereitstehen. Das Beispiel lässt sich besser durch die Kontrollstruktur einer postkonditionalen Schleife formulieren. Der Auszug
# Anweisungen vor der Schleife repeat # Schleifenrumpf mit Anweisungen until( <boolean expression> ) # Anweisungen nach der Schleife
verhält sich ebenso wie das erste Beispiel, ist dabei aber kürzer und bringt den wiederholenden Charakter und die Prüfung der Abbruchbedingung nach jedem Durchlauf deutlicher zum Ausdruck. Es gibt keinen Ablauf, der den Gebrauch von Sprüngen erzwingen oder auch nur empfehlen würde; ein Skript ohne Sprünge ist wohlstrukturiert.