Skip to main content

Schleifen

Der Bereich "Steuerung" 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

Der dauerhaft wiederholen-Block führt den Code in seinem Körper solange aus, bis das Programm endet.

wiederhole

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:

Bild1_por.PNG

wiederhole-solange

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:

  1. Eine Variable namens insgesamt erhält einen Anfangswert von 0.
  2. Die Schleife beginnt mit einer Überprüfung, ob insgesamt kleiner als 30 ist. Wenn ja, werden die Blöcke im Körper durchlaufen.
  3. Eine Zufallszahl im Bereich von 1 bis 6 wird erzeugt (um einen Würfelwurf zu simulieren) und in einer Variablen namens gewürfelt gespeichert.
  4. Die gewürfelte Zahl wird ausgegeben.
  5. Die Variable insgesamt wird um gewürfelt erhöht.
  6. Wenn das Ende der Schleife erreicht ist, geht die Steuerung zurück zu Schritt 2.

Bild2_por.PNG


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

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.

Bild3_por.PNG

zählen-von-bis

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.

Bild4_por.PNG

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.

Bild5_por.PNG

Bild6_por.PNG

für jeden

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:

Bild7_por.PNG

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 Beispiel ihre Verwendung bei der für jeden-Schleife zeigen.

fahre-mit-nächster-Iteration-fort

fahre-mit-nächster-Iteration-fort 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.

Bild8_por.PNG

Schleifenabbruch

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.

Bild9_por.PNG