Schleifen
Der Bereich "Schleifen" enthält Blöcke, die steuern, ob andere Blöcke, die in ihrem Inneren platziert sind, ausgeführt werden. Es gibt zwei Arten von Steuerungsblöcken: "wenn-sonst"-Blöcke (die auf einer eigenen Seite beschrieben werden) und Blöcke, die steuern, wie oft ihr Inneres ausgeführt wird. Letztere werden Schleifen genannt, da ihr Inneres, auch als Schleifenkörper oder Körper bezeichnet, (möglicherweise) mehrfach wiederholt wird. Jeder Durchlauf einer Schleife wird als Iteration bezeichnet.
Blöcke zur Erstellung von Schleifen
"dauerhaft wiederholen"-BlöckeBlock
Der "dauerhaft wiederholen"-Block führt den Code in seinem Körper so lange aus, bis das Programm endet.
"wiederhole"-BlöckeBlock
Der "wiederhole"-Block führt den Code in seinem Körper, so häufig wie angegeben aus. Der folgende Block gibt zum Beispiel zehnmal "Hallo!" aus:
"wiederhole-solange"-Block
Stelle dir ein Spiel vor, bei dem ein Spieler einen Würfel wirft und alle geworfenen Werte addiert, solange die Summe kleiner als 30 ist. Die folgenden Blöcke implementieren dieses Spiel:
- Eine Variable namens insgesamt erhält einen Anfangswert von 0.
- Die Schleife beginnt mit einer Überprüfung, ob insgesamt kleiner als 30 ist. Wenn ja, werden die Blöcke im Körper durchlaufen.
- Eine Zufallszahl im Bereich von 1 bis 6 wird erzeugt (um einen Würfelwurf zu simulieren) und in einer Variablen namens gewürfelt gespeichert.
- Die gewürfelte Zahl wird ausgegeben.
- Die Variable insgesamt wird um gewürfelt erhöht.
- Wenn das Ende der Schleife erreicht ist, geht die Steuerung zurück zu Schritt 2.
Nach Beendigung der Schleife werden alle nachfolgenden Blöcke (nicht dargestellt) durchlaufen. Im Beispiel endet der Schleifendurchlauf, nachdem eine gewisse Anzahl von Zufallszahlen im Bereich von 1 bis 6 ausgegeben wurde, und die Variable insgesamt hat dann als Wert die Summe dieser Zahlen, die mindestens 30 beträgt.
"wiederhole-bis"-Block
"wiederhole solange"-Schleifen wiederholen ihren Körper, "solange" eine Bedingung erfüllt ist. "wiederhole bis"-Schleifen sind ähnlich, mit dem Unterschied, dass sie ihren Körper so lange wiederholen, "bis" eine bestimmte Bedingung erfüllt ist. Die folgenden Blöcke sind äquivalent zum vorherigen Beispiel, weil die Schleife läuft, bis insgesamt größer oder gleich 30 ist.
"zählen-von-bis"-Block
Die "zählen-von-bis"-Schleife erhöht einer Variable den Wert, beginnend mit einem ersten Wert, endend mit einem zweiten Wert und in Schritten von einem dritten Wert, wobei der Körper für jeden Wert der Variable einmal ausgeführt wird. Das folgende Programm gibt zum Beispiel die Zahlen 1, 3 und 5 aus.
Wie die beiden folgenden Schleifen zeigen, die jeweils die Zahlen 5, 3 und 1 ausgeben, kann dieser erste Wert größer sein als der zweite. Das Verhalten ist das gleiche, egal ob der Inkrementbetrag (dritter Wert) positiv oder negativ ist.
"für jeden"-Block
Der "für jeden"-Block ist ähnlich wie die "zählen-von-bis"-Schleife, nur dass er statt der Schleifenvariable in einer numerischen Reihenfolge die Werte aus einer Liste der Reihe nach verwendet. Das folgende Programm gibt jedes Element der Liste "alpha", "beta", "gamma" aus:
Schleifenabbruchblöcke
Die meisten Schleifen werden so lange durchlaufen, bis die Abbruchbedingung (bei "wiederhole"-Blöcken) erfüllt ist oder bis alle Werte der Schleifenvariable angenommen wurden (bei "zählen mit"- und "für jeden"-Schleifen). Zwei selten benötigte, aber gelegentlich nützliche Blöcke bieten zusätzliche Möglichkeiten zur Steuerung des Schleifenverhaltens. Sie können bei jeder Art von Schleife verwendet werden, auch wenn die folgenden Beispiele ihre Verwendung bei der "für jeden"-Schleife zeigen.
"sofort mit nächstem Schleifendurchlauf fortfahren"-Block
Der "sofort mit nächstem Schleifendurchlauf fortfahren"-Block bewirkt, dass die restlichen Blöcke im Schleifenkörper übersprungen werden und die nächste Iteration der Schleife beginnt.
Das folgende Programm gibt bei der ersten Iteration der Schleife "alpha" aus. Bei der zweiten Iteration wird der Block "fahre mit nächster Integration fort" ausgeführt, wodurch die Ausgabe von "beta" übersprungen wird. Bei der letzten Iteration wird "gamma" gedruckt.
"Schleifenabbruch"-Block
Der "Schleifenabbruch"-Block ermöglicht einen vorzeitigen Ausstieg aus einer Schleife. Das folgende Programm gibt bei der ersten Iteration "alpha" und bricht bei der zweiten Iteration aus die Schleife ab, wenn die Schleifenvariable gleich "beta" ist. Der dritte Punkt in der Liste wird nie erreicht.