TigerJython4Kids | Robotique
Robotik
|
7. WHILE & FOR |
DU LERNST HIER... |
|
WHILE-SCHLEIFE |
Eine while-Schleife wird mit dem Schlüsselwort while eingeleitet, gefolgt von einer Bedingung und einem Doppelpunkt. So lange die Bedingung erfüllt ist, werden die Befehle im nachfolgenden Programmblock wiederholt. In der Bedingung werden in der Regel die Vergleichsoperatoren >, >=, <, <=, ==, != verwendet. Die Anweisungen im while-Block müssen eingerückt sein. In der dir bekannten Funktion square(s) zum Zeichnen eines Quadrats ersetzt du das repeat durch eine while-Schleife, indem du einen Variable i einführst.
Du musst i zuerst auf 0 initialisieren und testest dann in der Schleifenbedingung, ob i kleiner als 4 ist. Falls dies zutrifft, durchläuft du den Schleifenkörper und erhöhst die Variable um 1. Da i in jedem Schleifendurchlauf um 1 erhöht wird, nennt man i auch Schleifenzähler. Die Schleifenbedingung heisst auch Laufbedingung, da die Schleife so lange durchlaufen wird, solange sie wahr ist.
Programm: from oxosnake import * def square(s): repeat 4: forward(s) right(90) makeSnake(speed = 90, pos = (0, 7)) s = 1 while s < 8: square(s) s = s + 2
Programm: from oxosnake import * makeSnake(speed = 90) while True: forward(2) right(45)
Programm: from oxosnake import * from random import randint makeSnake(heading = 135, speed = 90) while True: x = randint(1, 6) setPos(x, 0) while getY() < 11: forward() right(90) forward() left(90) FOR-SCHLEIFEOft benötigst du in einer Wiederholschleife eine ganzzahlige Variable, die bei jedem Durchgang um eins grösser wird. Du kannst dies zwar mit einer while-Schleife lösen, einfacher geht es aber mit einer for-Schleife, bei der der Schleifenzähler automatisch verändert wird. Die Funktion range(n) liefert dir alle Zahlen von 0 bis n-1 und mit der for-Schleife werden alle diese Werte durchlaufen. for i in range(n): durchläuft Zahlen i von 0 bis n-1 Da range(a, b) alle Zahlen von a bis b-1 liefert, kannst du mit for i in range(a, b): die Zahlen i von a bis b-1durchlaufen Beachte, dass der letzte Wert b - 1 und nicht etwa b ist. Nach der Zeile mit for muss ein Doppelpunkt stehen und der Schleifenkörper ist wie bei einer while-Schleife eingerückt.
Programm: from oxosnake import * makeSnake(speed = 90, pos = (0, 0), heading = 90) hide() penDown() for i in range(8): setPos(0, i) forward(i) |
MERKE DIR... |
Um bestimmte Programmblöcke mehrmals auszuführen, kannst du im TigerJython die repeat-, while- oder for-Schleife verwenden. Die while-Schleife ist sehr allgemein und immer einsetzbar |
ZUM SELBST LÖSEN |
|
Fachliche Hinweise:
Das Schlüsselwort repeat gehört nicht standardmässig zur Syntax von Python, sondern wurde speziell in TigerJython eingebaut, da es keine Variablen braucht und daher für Programmiereinsteiger einfacher ist.
In Python verwendet man anstelle repeat n: for i in range(n):