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 Art von Schleife an, die repeat-until-Schleife genannt wird und eine einzigartige Eigenschaft besitzt, die sie von der while-Schleife unterscheidet, die Sie gerade kennengelernt haben. Der Hauptunterschied besteht darin, dass eine repeat-until-Schleife ihren Codeblock immer mindestens einmal ausführt, unabhängig von der Bedingung.

Die Syntax sieht so aus:

repeat
    -- Code, der wiederholt werden soll
until condition

Beachten Sie, dass die Bedingung am Ende geprüft wird, nachdem der Code bereits einmal ausgeführt wurde. Die Schleife wird so lange wiederholt, bis die Bedingung true wird – was das Gegenteil einer while-Schleife ist, die fortgesetzt wird, solange die Bedingung true ist.

Hier ist ein praktisches Beispiel, das das Würfeln simuliert, bis eine 6 gewürfelt wird:

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 Sie mindestens einmal würfeln, und sie würfelt so lange weiter, bis die Bedingung roll == 6 wahr wird. Dieses „zuerst ausführen, später prüfen“-Verhalten macht repeat-until-Schleifen perfekt für Situationen, in denen etwas mindestens einmal passieren muss, bevor entschieden wird, ob fortgefahren werden soll.

challenge icon

Aufgabe

Einfach

Sie erstellen eine einfache Simulation zur Passwortvalidierung.

  1. Erstellen Sie eine Variable namens password und setzen Sie diese auf eine leere Zeichenfolge ("").
  2. Erstellen Sie eine weitere Variable namens correctPassword und setzen Sie diese auf "secure123".
  3. Erstellen Sie eine Tabelle namens attempts, die die folgenden Passwortversuche **in der angegebenen Reihenfolge** enthält:
    • "password"
    • "123456"
    • "admin"
    • "secure123"
  4. Erstellen Sie eine Variable namens index und setzen Sie diese auf 1. Sie werden diese verwenden, um zu verfolgen, bei welchem Versuch Sie sich gerade befinden.
  5. Verwenden Sie eine repeat-until-Schleife, um:
    • Den aktuellen Versuch password zuzuweisen, indem Sie attempts[index] verwenden — dies liest das Element an der Position index aus der Tabelle
    • Das aktuelle password auszugeben (Print)
    • Den index um 1 zu erhöhen (z. B. index = index + 1), um zum nächsten Versuch zu gelangen
  6. Die Schleife soll **erst dann** stoppen, wenn password gleich correctPassword ist.

Jedes Mal, wenn die Schleife durchläuft, liest sie einen Versuch aus der Tabelle, gibt ihn aus und geht dann zum nächsten über. Die Schleife läuft so lange 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. Den aktuellen Versuch `password` zuzuweisen
-- 2. Das versuchte Passwort auszugeben
-- 3. Zum nächsten Versuch überzugehen
-- Stoppen, 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