Wiederholen und entscheiden: Schleifen und Bedingungen
Mit einer Schleife lässt du einen Computer etwas wiederholen, mit einer Bedingung lässt du ihn entscheiden. So werden lange Programme kurz und schlau.
Warum
Du willst einen Roboter zehn Felder vorwärts gehen lassen. Musst du dann wirklich zehnmal „geh vorwärts“ schreiben?
Das geht, aber es ist langweilig und du machst schnell einen Fehler. Programmierer schreiben lieber einmal: Wiederhole 10-mal, geh vorwärts.
Und was, wenn da eine Mauer steht? Dann muss der Roboter entscheiden können: Wenn eine Mauer vor dir steht, dreh dich, sonst geh vorwärts. Mit Wiederholen und Entscheiden kann ein kurzes Programm sehr viel.
Sieh es
Wähle ein Programm und spiel es Schritt für Schritt ab. Links stehen die Blöcke in deiner eigenen Sprache, rechts dieselben Zeilen als Code. Die Zeile, die gerade läuft, leuchtet auf.
- wiederhole 4-mal
- geh 1 Feld vor
- geh 1 Feld vor
- dreh dich nach rechts
for i in range(4):move()move()turn_right()
Die Blöcke und der Code sind dasselbe Programm, Zeile für Zeile. Der Code sieht aus wie Python und benutzt englische Wörter, wie echter Code.
Beschreibung des Bildes
Ein Raster mit den Spalten A bis F und den Zeilen 1 bis 6, ein Roboter mit einer Nase, die zeigt, wohin er schaut, manchmal Mauern und eine Fahne. Neben dem Raster steht das Programm zweimal: als Blöcke, wie wiederhole 4-mal und dreh dich nach rechts, und als Code, wie for i in range(4) und turn_right(). Bei jedem Schritt bewegt sich der Roboter und die Zeile, die er ausführt, leuchtet auf.
Versteh es
Ein Programm ist eine Reihe von Anweisungen, die der Computer eine nach der anderen ausführt, von oben nach unten. Das nennt man eine Sequenz.
Eine Schleife wiederholt die Anweisungen, die in ihr stehen. In den Blöcken steht wiederhole 4-mal, im Code for i in range(4):. Was dazugehört, wird ein Stück nach rechts eingerückt. range(4) zählt 0, 1, 2, 3: Das sind vier Runden.
Eine Bedingung lässt den Computer entscheiden. if wall_ahead(): bedeutet: Wenn eine Mauer vor dir steht. Dann tut er, was darunter steht, und sonst (else:) etwas anderes.
Eine Schleife mit einer Bedingung darin ist sehr stark. while path_ahead(): bedeutet: Solange der Weg frei ist, wiederhole weiter. Der Roboter hält von selbst an der Mauer an, egal wie weit sie weg ist.
In Lus siehst du immer zwei Formen desselben Programms: Blöcke in deiner eigenen Sprache und Code mit englischen Wörtern, so wie echte Programmiersprachen sie benutzen. Es sind dieselben Zeilen, mit derselben Nummer.
Sequenz: von oben nach unten. Schleife: Wiederhole, was eingerückt ist. Bedingung: Wenn dies wahr ist, tu das, sonst etwas anderes.
Gelöstes Beispiel
Der Roboter steht auf A5 und schaut nach oben. Wo steht er nach diesem Programm?
Das Programm:
for i in range(3): move() turn_right() move() move()Die Schleife läuft 3-mal: Der Roboter geht von A5 nach A4, A3 und A2.
Danach dreht er sich nach rechts und geht zwei Felder vorwärts: B2, C2.
- Antwort
Der Roboter steht auf C2 und schaut nach rechts.
Mach es
Wähl eine Stufe. Du bekommst jedes Mal eine neue Aufgabe, die sofort kontrolliert wird.
Stolperfallen
Falsch:
range(4)zählt 1, 2, 3, 4.Python beginnt bei 0 zu zählen. Es sind zwar vier Runden, aber der Zähler ist 0, 1, 2 und 3.
Richtig:
range(n)ergibt n Runden, mit dem Zähler von 0 bis n − 1.Falsch: Alles unter einer Schleife wird wiederholt.
Nur die Zeilen, die eingerückt sind, gehören zur Schleife. Eine Zeile, die wieder links beginnt, kommt erst nach der Schleife.
Richtig: Achte auf das Einrücken: Es zeigt, was zur Schleife oder zur Bedingung gehört.
Falsch: Eine
while-Schleife hört nach einer festen Anzahl von Malen auf.Eine
while-Schleife wiederholt, solange die Bedingung wahr ist. Wird sie nie falsch, hört die Schleife nie auf.Richtig: Sorg dafür, dass sich in der Schleife etwas ändert, damit die Bedingung irgendwann falsch wird.
Im Alltag
- Eine Ampel wiederholt ihre Schleife den ganzen Tag: grün, gelb, rot, und wieder von vorn.
- Ein Saugroboter fährt geradeaus, solange der Weg frei ist, und dreht sich, wenn er eine Wand oder ein Stuhlbein spürt.
- In einem Spiel prüft der Computer immer wieder: Wenn du die Münze berührst, bekommst du einen Punkt.
- Ein Thermostat schaut ständig: Wenn es kälter ist als eingestellt, geht die Heizung an.
Geschichte
Im Jahr 1843 schrieb Ada Lovelace Notizen zur Analytical Engine von Charles Babbage, einer Rechenmaschine, die nie ganz gebaut wurde. Sie beschrieb darin Schritt für Schritt, wie die Maschine eine Reihe von Zahlen berechnen konnte, mit Schritten, die wiederholt werden. Darum nennt man sie oft die erste Programmiererin.
Am Esstisch
Spielt zusammen Roboter auf den Fliesen in der Küche. Eine Person schreibt ein Programm mit wiederhole und wenn, die andere führt es wörtlich aus. Schafft ihr es bis zum Kühlschrank?
Eine Frage, über die ihr gemeinsam sprecht, Eltern und Kinder. Es gibt keine falsche Antwort.