**Dies ist eine alte Version des Dokuments!**
Wiederholungen und Schleifen
Statt einen Befehl mehrere Male hintereinander hinzuschreiben, können wir eine Anweisung oder eine ganze Sequenz auch mit einer Schleife wiederholen. Die untenstehende Schleife lässt Kara solange (Englisch: while) vorwärts laufen, als sie nicht vor einem Pilz steht.
Dafür können wir Kara fragen, ob auf dem Platz vor ihr ein Pilz ist, mit kara.mushroomFront(). Da Kara solange weiterlaufen wollen, als kein Pilz vor ihr ist, müssen wir Karas Antwort gerade umdrehen, das geschieht mit dem Schlüsselwort not vor kara.
Beachte:
- Nach der Bedingung von
whilemuss ein Doppelpunkt:stehen. - Die zu wiederholenden Anweisungen werden gleichmässig eingerückt* (normalerweise mit vier Leerzeichen). * Sobald die Bedingung falsch wird, wird das Programm nach der Schleife fortgesetzt. ### Aufgabe 2 Schau dir die untenstehende Kara-Welt gut an. Kannst du ein Kara-Programm schreiben, das mit zwei Schleifen zum Pilz kommt? Dafür kannst du mit
kara.treeFront()herausfinden, ob vor Kara ein Baum steht.while not kara.treeFront(): kara.move() TTTTTTTTT T T T T T T T > T T T T T T T T TTTTMTTTT while not kara.treeFront(): kara.move() kara.turnRight() while not kara.mushroomFront(): kara.move()
while kara.treeFront(): kara.turnRight() # oder kara.turnLeft() while not kara.mushroomFront(): kara.move()
while not kara.mushroomFront(): while kara.treeFront(): kara.turnLeft() kara.move() TTTTTTTTT T T TTTTTT T T> T T T TT T T T T M T T T TTTTTTTTT ++ ### Weiter Gratuliere, du hast deine ersten Kara-Schleifen geschrieben! Um wirklich ein Programm schreiben zu können, das aus vielen oder sogar allen Labyrinthen findet, möchten wir etwas von der folgenden Form haben: <code python> while not kara.mushroomFront(): # Wahl zwischen turnLeft, turnRight oder move, je nach Situation. </code> Wir könnten das vielleicht mit mehreren verschachtelten Schleifen erreichen, aber Kara hat noch mehr auf Lager! Weiter gehts mit Selektion mit Verzweigungen.