Die repeat-until-Schleife
Teil des Abschnitts Grundlagen der Lua-Journey von Coddy. Lektion 72 von 90.
Lua bietet eine weitere Schleifenart namens repeat-until-Schleife, die eine einzigartige Eigenschaft hat, durch die sie sich von der while-Schleife unterscheidet, die du gerade kennengelernt hast. Der entscheidende Unterschied besteht darin, dass eine repeat-until-Schleife ihren Codeblock unabhängig von der Bedingung immer mindestens einmal ausführt.
Die Syntax sieht so aus:
repeat
-- Code zum Wiederholen
until conditionBeachte, dass die Bedingung am Ende geprüft wird, nachdem der Code bereits einmal ausgeführt wurde. Die Schleife wiederholt sich weiterhin bis die Bedingung true wird – im Gegensatz zu einer while-Schleife, die fortgesetzt wird, solange die Bedingung true ist.
Hier ist ein praktisches Beispiel, das das Würfeln simuliert, bis du eine 6 erhältst:
local roll = 0
repeat
roll = math.random(1, 6) -- Würfelt eine Zahl zwischen 1 und 6
print("Rolled:", roll)
until roll == 6
print("Finally got a 6!")Diese Schleife garantiert, dass du mindestens einmal würfelst, und würfelt weiter, bis die Bedingung roll == 6 wahr wird. Dieses Verhalten „zuerst ausführen, später prüfen“ macht repeat-until-Schleifen ideal für Situationen, in denen etwas mindestens einmal geschehen muss, bevor entschieden wird, ob fortgefahren werden soll.
Aufgabe
EinfachDu erstellst eine einfache Simulation zur Passwortvalidierung.
- Erstelle eine Variable namens
passwordund setze sie auf eine leere Zeichenkette (""). - Erstelle eine weitere Variable namens
correctPasswordund setze sie auf"secure123". - Erstelle eine Tabelle namens
attempts, die die folgenden Passwortversuche in dieser Reihenfolge enthält:"password""123456""admin""secure123"
- Erstelle eine Variable namens
indexund setze sie auf1. Du verwendest sie, um zu verfolgen, bei welchem Versuch du dich gerade befindest. - Verwende eine
repeat-until-Schleife, um:- Den aktuellen Versuch mithilfe von
passwordattempts[index]zuzuweisen. Dadurch wird das Element an der Positionindexaus der Tabelle gelesen - Das aktuelle
passwordauszugeben indexum 1 zu erhöhen (z. B.index = index + 1), um zum nächsten Versuch zu wechseln
- Den aktuellen Versuch mithilfe von
- Die Schleife sollte nur dann stoppen, wenn
passwordgleichcorrectPasswordist.
Bei jedem Durchlauf der Schleife liest sie einen Versuch aus der Tabelle, gibt ihn aus und fährt dann mit dem nächsten fort. Die Schleife läuft weiter, bis das richtige Passwort gefunden wurde.
Probier es selbst
-- Variablen initialisieren
local password = ""
local correctPassword = "secure123"
-- Liste der Passwortversuche
local attempts = {"password", "123456", "admin", "secure123"}
local index = 1
-- TODO:
-- Verwende eine repeat-until-Schleife, um:
-- 1. Weise den aktuellen Versuch dem genauen Text aus den Anweisungen zu
-- 2. Gib das versuchte Passwort aus
-- 3. Gehe zum nächsten Versuch
-- Stoppe, wenn password mit correctPassword übereinstimmtDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren 2: Vergleichs- und logische Operatoren
GleichheitsoperatorenVergleichsoperatorenDer 'and'-OperatorDer 'or'-OperatorDer 'not'-OperatorKurzschlussauswertungTruthy- und Falsy-WerteRückblick – Einfache Logik7Grundlegende bedingte Logik
Die if-then-AnweisungDie if-then-else-AnweisungDie elseif-AnweisungWiederholung – Schatztruhe2Variablen und Datentypen
Was ist eine Variable?ZahlenZeichenkettenBoolesche WerteDer Wert „nil“Die Funktion type()NamenskonventionenRückblick – Charakterprofil5Grundlegende Ausgabe
Literale ausgebenVariablen ausgebenMehrere Werte ausgebenStrings & Variablen kombinierenDie tostring()-FunktionEingabeTypumwandlungRückblick – StatusberichtRückblick – Bis 1208Grundlagen der String-Manipulation
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Rückblick – Benutzernamen formatieren3Operatoren 1: Arithmetik & Verkettung
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorVerkettung von ZeichenkettenRangfolge der OperatorenWiederholung – Einfache Berechnungen6Projekt: Charakterwerte anzeigen
WillkommensnachrichtCharakterwerte deklarieren9Grundlagen von Funktionen
Eine Funktion deklarierenEine Funktion aufrufenFunktionen mit ParameternFunktionen mit mehreren ParameternDie Anweisung „return“Zusammenfassung – Flächenrechner12Grundlagen der Schleifen
Die while-SchleifeDie repeat-until-SchleifeDie numerische for-Schleifefor-Schleife mit SchrittweiteDie Anweisung „break“Rückblick – Countdown15Abschließende Herausforderungen
Wiederholung – SpielzugWiederholung – Einfache DatenbankWiederholung – Summe gerader ZahlenÜbe selbstständig: Online-Lua-Compiler