Schleifen
Schleifen werden verwendet, um einen Block mehrfach zu durchlaufen. JayMo bietet hierfür mehrere Möglichkeiten. Für den Einstieg (und für Umsteiger) ist die Verwendung der nachfolgenden Steuer-Objekte empfehlenswert. In den nachfolgenden Kapiteln werden auch noch weitere Möglichkeiten gezeigt.
Count
Die Count-Schleife zählt von einem Start-Wert (Vorgabe: 1) bis zu einem End-Wert und führt jeweils den zugehörigen Block aus.
Count( 10 )
Print "Hallo"
Dies wird somit 10x "Hallo" ausgeben.
Im nächsten Beispiel läuft die Schleife von 3 bis 7. Zudem kann mit der magischen Variable "it" der aktuelle Wert des Blocks abgefragt werden.
Count( 3, 7 )
Print it + ". Punkt"
Das Count-Objekt kann auch in größeren Schritten voran gehen. Hier wird von 0 bis 50 gezählt, allerdings in 5er-Schritten.
Count( 0, 50, 5 )
Print it
While
Bei While wird ein Block so lange wiederholt, wie das übergebene Argument "true" ist.
b = true
While( b )
Print "b ist true"
b = false
Hier wird der Block genau einmal durchlaufen, da mit dem letzten Befehl "b" auf false gesetzt wird.
Notiz:
Ein Block kann beliebig viele Zeilen und auch weitere Blöcke enthalten.
Nicht zu empfehlen ist allerdings folgendes, da diese Schleife endlos läuft 😇
While( true )
Print "Never ending story"
Repeat
Die Repeat-Schleife ist das Gegenstück von While. Der Block wird mindestens einmal durchlaufen und erst danach geprüft ob der übergebene Wert "true" ist.
Repeat( false )
Print "Buh!"
Somit wird hier genau einmal "Buh!" ausgegeben. Danach stellt Repeat fest dass der übergebene Wert "false" ist und bricht ab.
i = 5
Repeat( i > 0 )
Print i
i =--
Hier wird der Block so lange wiederholt, wie die Variable "i" größer als 0 ist. Somit wird "54321" ausgegeben.
For
Umsteiger mögen an dieser Stelle vielleicht die "For"-Schleife vermissen. Die meisten Fälle, in denen in anderen Sprachen eine "For"-Schleife verwendet wird, lassen sich mit einer "Count"-Schleife lösen.
Aber, ja, es existiert in JayMo auch eine For-Schleife. Diese benötigt immer 3 Argumente:
- Startwert
- Bedingung
- Berechnung
For( i = 1, i < 5, i=++ )
Print i
Hier wird die Variable "i" mit dem Startwert 1 definiert. Solange "i" nun kleiner als 5 ist, wird mit "Print" der aktuelle Wert von "i" ausgegeben. Durch das 3. Argument wird der Wert der Variable "i" nach jedem Durchlauf um 1 erhöht.
Wichtig: Im Vergleich zu anderen Sprachen wird hier ein "=++" (mit Zuweisung) und kein "++" (nur Berechnung) verwendet!
Each
Mit der Each-Schleife lassen sich alle Elemente einer Sequenz (z.B. einer Liste) einzeln verarbeiten:
list = [3,8,4,1,9,2,6]
Each( list )
Print it
Diese Schleife wandert durch jedes Element in der übergebenen Sequenz und übergibt dieses an den angehängten Block. Wieder kann dann mit "it" der aktuelle Wert innerhalb des Blocks ausgelesen werden.
Loop
Die Loop-Schleife ist eine sehr einfache Schleife, welcher keinerlei Argumente übergeben werden können.
Loop
Print "Please hold the line!"
Diese Schleife wiederholt den angehängten Block. Als Ausgang dieser Schleife existieren nur 2 Möglichkeiten: - Die Schleife wird mit "Break" abgebrochen. - Die Anwendung wird mit "Exit" beendet.