Menu
Coddy logo textTech

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 condition

Beachte, 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.

challenge icon

Aufgabe

Einfach

Du erstellst eine einfache Simulation zur Passwortvalidierung.

  1. Erstelle eine Variable namens password und setze sie auf eine leere Zeichenkette ("").
  2. Erstelle eine weitere Variable namens correctPassword und setze sie auf "secure123".
  3. Erstelle eine Tabelle namens attempts, die die folgenden Passwortversuche in dieser Reihenfolge enthält:
    • "password"
    • "123456"
    • "admin"
    • "secure123"
  4. Erstelle eine Variable namens index und setze sie auf 1. Du verwendest sie, um zu verfolgen, bei welchem Versuch du dich gerade befindest.
  5. Verwende eine repeat-until-Schleife, um:
    • Den aktuellen Versuch mithilfe von password attempts[index] zuzuweisen. Dadurch wird das Element an der Position index aus der Tabelle gelesen
    • Das aktuelle password auszugeben
    • index um 1 zu erhöhen (z. B. index = index + 1), um zum nächsten Versuch zu wechseln
  6. Die Schleife sollte nur dann stoppen, wenn password gleich correctPassword ist.

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 übereinstimmt
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-Lua-Compiler