Die FOR - NEXT Schleife

Schleifen werden dazu verwendet Dinge zu wiederholen. Wir haben in einer Schleife einen Zähler, der bei einem bestimmten Wert beginnt und dann solange um einen bestimmten Wert verändert wird bis ein bestimmter Zielwert erreicht ist. Und alles was sich zwischen dieser Schleife befindet wird genau so oft ausgeführt.

Machen wir einfach ein schnelles Beispiel zum leichteren Verständnis:

Wir wollen 5 Würfel mit 1m Seitenlänge mit 2m Abstand platzieren:

 

Unser 3D-Script dazu würde folgendermaßen aussehen:

block 1,1,1
addx 2
block 1,1,1
addx 2
block 1,1,1
addx 2
block 1,1,1
addx 2
block 1,1,1

Und jetzt wollen wir das ganze in eine Schleife packen.

Es gibt einen Teil, der immer wiederholt wird:

block 1,1,1
addx 2

Und um diesen Teil herum, bauen wir unsere Schleife. Jede Schleife benötigt eine Variable, die als Zähler verwendet wird. Ich weiß zwar nicht wieso, aber es hat sich eingebürgert, dass man normalerweise die Variable i (bzw. dann folgen j, k usw.) als Zählervariable verwendet. Natürlich kann man auch jede andere beliebige Variable verwenden.

Also wir verwenden als Zählervariable i. Dann brauchen wir nur noch einen Start- und einen Endwert. In unserem Beispiel beginnen wir bei 1 zu zählen und hören bei 5 auf.

Also sieht unser FOR-Befehl so aus:

FOR i = 1 to 5

dann kommt der Teil, der wiederholt werden soll

BLOCK 1,1,1
ADDX 2

und am Ende der Schleife sagen wir mit dem NEXT-Befehl, dass der Zähler erhöht werden soll.

NEXT i

Das ganze zusammen ergibt:

FOR i = 1 to 5
  BLOCK 1,1,1
  ADDX 2
NEXT i

(Die Einrückung der Zeilen zwischen FOR und NEXT dient nur der besseren Sichtbarkeit der Schleife.)

und wir erhalten im 3D-Fenster das gleiche Ergebnis:

Jetzt ist es sehr leicht möglich, die Anzahl der Blöcke zu verändern. Wir erhöhen einfach den Endwert auf 12:

FOR i = 1 to 12
  BLOCK 1,1,1
  ADDX 2
NEXT i

und erhalten:

12 Blöcke!

Was mit dem i-Wert passiert soll folgendes Beispiel verdeutlichen:

FOR i = 1 to 12
  BLOCK i,1,1
  ADDZ 1
NEXT i

und im 3D-Fenster sehen wir, wie sich der Parameter i verändert:

Man kann dem Zähler auch sagen, um wie viel er sich ändern soll. Gibt man das nicht extra an, wird 1 verwendet. Mit STEP im FOR-Befehl gibt man die Wertänderung des Zählers an:

zB:

FOR i = 1 to 12 STEP 2
  BLOCK i,1,1
  ADDZ 1
NEXT i

in diesem Beispiel wird der Zähler immer um 2 erhöht. Die Werte für i sind also: 1, 3, 5, 7, 9, 11:

Wir können den Zähler natürlich auch woanders beginnen lassen:

FOR i = 3 to 12 STEP 2
  BLOCK i,1,1
  ADDZ 1
NEXT i

Dann ergeben sich für i die Werte: 3, 5, 7, 9, 11:

Und wunderbarerweise können wir auch Rückwärts zählen:

FOR i = 12 to 1 STEP -1
  BLOCK i,1,1
  ADDZ 1
NEXT i

ergibt für i die Werte: 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1:

Und jetzt benutzen wir eine Schleife um eine Pyramide zu bauen:

 

Die Scripts wie immer in Forum.

Weiter geht's mit der IF-THEN Bedingung