Menu
Coddy logo textTech

Die repeat-until-Schleife

Teil des Abschnitts Grundlagen der Lua-Journey von Coddy. Lektion 72 von 90.

Lua bietet einen weiteren Looptyp namens repeat-until-Loop, der eine einzigartige Eigenschaft besitzt, die ihn vom while-Loop unterscheidet, den du gerade kennengelernt hast. Der Hauptunterschied besteht darin, dass ein repeat-until-Loop seinen Codeblock immer mindestens einmal ausführt, unabhängig von der condition.

Die Syntax sieht wie folgt aus:

repeat
    -- Code zum Wiederholen
until condition

Beachte, dass die Bedingung am Ende überprüft wird, nachdem der Code bereits einmal ausgeführt wurde. Die Schleife wird so lange wiederholt, until 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 Sie eine 6 erhalten:

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 Bedingungen 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

Du erstellst eine einfache Passwort-Validierungssimulation.

  1. Erstelle eine Variable namens password und setze sie auf einen leeren String ("").
  2. Erstelle eine weitere Variable namens correctPassword und setze sie auf "secure123".
  3. Erstelle eine Tabelle namens attempts, die die folgenden Passwortversuche in Reihenfolge enthält:
    • "password"
    • "123456"
    • "admin"
    • "secure123"
  4. Erstelle eine Variable namens index und setze sie auf 1. Du wirst diese verwenden, um zu verfolgen, bei welchem Versuch du dich gerade befindest.
  5. Verwende eine repeat-until-Schleife, um:
    • Den aktuellen Versuch mit attempts[index] der Variablen password zuzuweisen — dies liest das Element an Position index aus der Tabelle
    • Das aktuelle password auszugeben (mittels print)
    • index um 1 zu erhöhen (z. B. index = index + 1), um zum nächsten Versuch zu wechseln
  6. Die Schleife soll erst stoppen, wenn password gleich correctPassword ist.

Jedes Mal, wenn die Schleife läuft, liest sie einen Versuch aus der Tabelle, gibt ihn aus und wechselt dann zum nächsten. 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. 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