Menu
Coddy logo textTech

Die repeat-until-Schleife

Teil des Abschnitts Fundamentals 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 gelernt 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 man eine 6 erhält:

local roll = 0

repeat
    roll = math.random(1, 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 einen leeren String ("").
  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 dieser 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 springen
  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.

Spickzettel

Die repeat-until-Schleife führt den Code mindestens einmal aus, bevor die Bedingung geprüft wird. Sie wird so lange wiederholt, bis die Bedingung true wird.

Syntax:

repeat
    -- zu wiederholender Code
until condition

Beispiel - Würfeln, bis eine 6 kommt:

local roll = 0

repeat
    roll = math.random(1, 6)
    print("Rolled:", roll)
until roll == 6

print("Finally got a 6!")

Wesentliche Unterschiede zu while-Schleifen:

  • Wird immer mindestens einmal ausgeführt
  • Die Bedingung wird am Ende geprüft
  • Wird fortgesetzt, bis die Bedingung true ist (Gegenteil von while)

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 der Variable `password` zuzuweisen
-- 2. Das versuchte Passwort auszugeben
-- 3. Zum nächsten Versuch übergehen
-- Stoppen, wenn das Passwort 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 Fundamentals