Zusammenfassung
In dieser Lektion hast du gelernt:
- Eine Schleife wiederholt einen Codeblock. Jeder Lauf des Blocks ist ein Durchlauf. Rücke den Block um 4 Leerzeichen ein.
while Bedingung do … endwiederholt den Block, solange die Bedingung wahr ist. Etwas im Block muss sich ändern, damit die Bedingung irgendwann falsch wird. Sonst endet die Schleife nie, und auf dieser Seite wird das Programm nach 5 Sekunden gestoppt. Was es bis dahin ausgegeben hat, bleibt in der Ausgabe.for i = 1, 10 do … endzählt von 1 bis 10, beide eingeschlossen. Die Schleife machtivon selbst lokal, und nach demendder Schleife istigleichnil.- Eine dritte Zahl ist die Schrittweite:
for i = 10, 1, -1zählt rückwärts, undfor i = 1, 9, 2nimmt jede zweite Zahl. Liegt der Start hinter dem Ende, läuft die Schleife null Mal. Achte auf Fehler um eins. - Nimm
for, wenn du weißt, wie oft die Schleife läuft, undwhile, wenn du es nicht weißt. - Eine Summe: eine Variable, die vor der Schleife bei 0 beginnt, in der Schleife jeden Wert addiert (
summe = summe + wert) und nach der Schleife ausgegeben wird. Der Durchschnitt ist die Summe geteilt durch die Anzahl der Werte. - Zählen: ein Zähler, der bei 0 beginnt und in einem
ifum 1 erhöht wird.tag % 5 == 0wählt jeden 5. Tag aus. repeat … until Bedingungprüft die Bedingung nach dem Block, der Block läuft also mindestens einmal, und die Schleife endet, wenn die Bedingung wahr ist. Die Bedingung kann lokale Variablen aus dem Block benutzen.breakbeendet eine Schleife sofort. Lua hat keincontinue: Setze stattdessen den Rest des Blocks in einif.- Schleifen können verschachtelt sein: Die innere Schleife läuft in jedem Durchlauf der äußeren ganz durch.
io.writeschreibt Texte und Zahlen ohne neue Zeile und ohne Tabulatoren, und ein leeresprint()beendet die Zeile.
In der nächsten Lektion lernst du Tabellen kennen: eine einzige Variable, die eine ganze Liste von Werten enthält, zum Beispiel alle Pflanzen von Emma. Du gehst sie mit den Schleifen durch, die du jetzt kennst.
So schreibst du es:
Anweisungen
- 1
Üben wir mit Emmas Plan für die nächsten 12 Tage. Gib mit einer
for-Schleife für jeden Tag von 1 bis 12 eine Zeile aus. Jeder 3. Tag ist zum Gießen da, jeder 4. Tag für den Markt, und an einem Tag, der beides ist (hier nur der Tag 12), macht Emma beides. An den anderen Tagen jätet sie Unkraut. Prüfe „beides“ zuerst, sonst wäre der Tag 12 nur zum Gießen da. Das Programm gibt Folgendes aus:Tag 1: Unkraut jäten Tag 2: Unkraut jäten Tag 3: gießen Tag 4: Markt Tag 5: Unkraut jäten Tag 6: gießen Tag 7: Unkraut jäten Tag 8: Markt Tag 9: gießen Tag 10: Unkraut jäten Tag 11: Unkraut jäten Tag 12: gießen und Markt - 2
Emma verdient an jedem Markttag 40 Münzen. Erzeuge vor der Schleife eine lokale Variable
muenzenmit dem Wert0und addiere in der Schleife an jedem Markttag 40 dazu (am Tag 12 auch). Gib nach der Schleife Folgendes aus:Münzen vom Markt: 120 - 3
Emma spart auf ein neues Scheunentor, das 300 Münzen kostet, und jeder weitere Markttag bringt 40 dazu. Schreibe am Ende des Programms eine
while-Schleife, die 40 zumuenzenaddiert, solange es weniger als 300 sind, und diese Markttage in einer neuen Variablen zählt. Gib nach der Schleife Folgendes aus:Weitere Markttage: 5