Menu
Coddy logo textTech

La boucle repeat-until

Fait partie de la section Les fondamentaux du Journey Lua de Coddy — leçon 72 sur 90.

Lua propose un autre type de boucle appelée la boucle repeat-until, qui possède une caractéristique unique la distinguant de la boucle while que vous venez d'apprendre. La différence clé est qu'une boucle repeat-until exécute toujours son bloc de code au moins une fois, quelle que soit la condition.

La syntaxe ressemble à ceci :

repeat
    -- code à répéter
until condition

Remarquez que la condition est vérifiée à la fin, après que le code a déjà été exécuté une fois. La boucle continue de se répéter jusqu'à ce que la condition devienne true — ce qui est l'opposé d'une boucle while qui continue tant que la condition est true.

Voici un exemple pratique qui simule le lancer d'un dé jusqu'à obtenir un 6 :

local roll = 0

repeat
    roll = math.random(1, 6) -- Lance un nombre entre 1 et 6
    print("Rolled:", roll)
until roll == 6

print("Finally got a 6!")

Cette boucle garantit que vous lancerez le dé au moins une fois, et elle continue de rouler jusqu'à ce que la condition roll == 6 devienne vraie. Ce comportement « exécuter d'abord, vérifier plus tard » rend les boucles repeat-until parfaites pour les situations où vous avez besoin que quelque chose se produise au moins une fois avant de décider de continuer.

challenge icon

Défi

Facile

Vous créez une simulation simple de validation de mot de passe.

  1. Créez une variable appelée password et initialisez-la avec une chaîne vide ("").
  2. Créez une autre variable appelée correctPassword et fixez-la à "secure123".
  3. Créez un tableau appelé attempts qui contient les tentatives de mot de passe suivantes dans l'ordre :
    • "password"
    • "123456"
    • "admin"
    • "secure123"
  4. Créez une variable appelée index et fixez-la à 1. Vous l'utiliserez pour suivre la tentative sur laquelle vous vous trouvez actuellement.
  5. Utilisez une boucle repeat-until pour :
    • Assigner la tentative actuelle à password en utilisant attempts[index] — cela lit l'élément à la position index du tableau
    • Afficher le password actuel
    • Incrémenter index de 1 (par exemple index = index + 1) pour passer à la tentative suivante
  6. La boucle doit s'arrêter uniquement quand password est égal à correctPassword.

Chaque fois que la boucle s'exécute, elle lit une tentative dans le tableau, l'affiche, puis passe à la suivante. La boucle continue jusqu'à ce que le mot de passe correct soit trouvé.

Essayez vous-même

-- Initialiser les variables
local password = ""
local correctPassword = "secure123"

-- Liste des tentatives de mot de passe
local attempts = {"password", "123456", "admin", "secure123"}
local index = 1

-- TODO :
-- Utiliser une boucle repeat-until pour :
-- 1. Assigner la tentative actuelle à `password`
-- 2. Afficher le mot de passe tenté
-- 3. Passer à la tentative suivante
-- Arrêter quand password correspond à correctPassword
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les fondamentaux