Menu
Coddy logo textTech

repeat-until Döngüsü

Coddy'nin Lua Journey'sinin Temeller bölümünün bir parçası — ders 72 / 90.

Lua, repeat-until döngüsü adı verilen başka bir döngü türü sunar; bu döngü, az önce öğrendiğiniz while döngüsünden kendisini ayıran benzersiz bir özelliğe sahiptir. Temel fark, bir repeat-until döngüsünün, koşul ne olursa olsun kod bloğunu her zaman en az bir kez çalıştırmasıdır.

Sözdizimi şu şekildedir:

repeat
    -- tekrarlanacak kod
until condition

Koşulun, kod bir kez çalıştıktan sonra sonda kontrol edildiğine dikkat edin. Döngü, koşul true olana kadar tekrarlanmaya devam eder; bu da koşul true olduğu sürece devam eden bir while döngüsünün tersidir.

İşte 6 gelene kadar zar atmayı simüle eden pratik bir örnek:

local roll = 0

repeat
    roll = math.random(1, 6) -- 1 ile 6 arasında bir sayı atar
    print("Rolled:", roll)
until roll == 6

print("Finally got a 6!")

Bu döngü, zarı en az bir kez atmanızı garanti eder ve roll == 6 koşulu doğru olana kadar zar atmaya devam eder. Bu "önce çalıştır, sonra kontrol et" davranışı, repeat-until döngülerini devam edip etmemeye karar vermeden önce bir şeyin en az bir kez gerçekleşmesine ihtiyaç duyduğunuz durumlar için mükemmel kılar.

challenge icon

Görev

Kolay

Basit bir şifre doğrulama simülasyonu oluşturuyorsunuz.

  1. password adında bir değişken oluşturun ve bunu boş bir dizeye ("") ayarlayın.
  2. correctPassword adında başka bir değişken oluşturun ve bunu "secure123" olarak ayarlayın.
  3. Aşağıdaki şifre denemelerini sırasıyla içeren attempts adında bir tablo oluşturun:
    • "password"
    • "123456"
    • "admin"
    • "secure123"
  4. index adında bir değişken oluşturun ve bunu 1 olarak ayarlayın. Bunu şu anda hangi denemede olduğunuzu takip etmek için kullanacaksınız.
  5. Aşağıdakileri yapmak için bir repeat-until döngüsü kullanın:
    • attempts[index] kullanarak mevcut denemeyi password değişkenine atayın — bu, tablodaki index konumundaki öğeyi okur
    • Mevcut password değerini yazdırın
    • Bir sonraki denemeye geçmek için index değerini 1 artırın (örneğin index = index + 1)
  6. Döngü yalnızca password, correctPassword değerine eşit olduğunda durmalıdır.

Döngü her çalıştığında, tablodan bir deneme okur, onu yazdırır ve ardından bir sonrakine geçer. Döngü, doğru şifre bulunana kadar devam eder.

Kendin dene

-- Değişkenleri başlat
local password = ""
local correctPassword = "secure123"

-- Şifre denemeleri listesi
local attempts = {"password", "123456", "admin", "secure123"}
local index = 1

-- TODO:
-- Şunları yapmak için bir repeat-until döngüsü kullanın:
-- 1. Mevcut denemeyi `password` değişkenine ata
-- 2. Denenen şifreyi yazdır
-- 3. Bir sonraki denemeye geç
-- password, correctPassword ile eşleştiğinde dur
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler