Menu
CoddyTech

repeat-until Döngüsü

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

Lua, while döngüsünden farklı olan benzersiz bir özelliğe sahip repeat-until döngüsü adlı başka bir döngü türü sunar. Temel fark, koşul ne olursa olsun repeat-until döngüsünün kod bloğunu 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, en sonda kontrol edildiğine dikkat et. Döngü, koşul true olana kadar tekrarlanmaya devam eder; bu, koşul true olduğu sürece devam eden bir while döngüsünün tam 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ü, zarları en az bir kez atmanı garanti eder ve roll == 6 koşulu doğru olana kadar zarları atmaya devam eder. Bu “önce çalıştır, sonra kontrol et” davranışı, devam edip etmemeye karar vermeden önce bir işlemin en az bir kez gerçekleşmesi gereken durumlarda repeat-until döngülerini mükemmel bir seçenek hâline getirir.

challenge icon

Görev

Kolay

Basit bir parola doğrulama simülasyonu oluşturuyorsun.

  1. password adında bir değişken oluştur ve değerini boş bir dize ("") olarak ayarla.
  2. correctPassword adında başka bir değişken oluştur ve değerini "secure123" olarak ayarla.
  3. attempts adında, aşağıdaki parola denemelerini sırayla içeren bir tablo oluştur:
    • "password"
    • "123456"
    • "admin"
    • "secure123"
  4. index adında bir değişken oluştur ve değerini 1 olarak ayarla. Bunu, şu anda hangi denemede olduğunu takip etmek için kullanacaksın.
  5. Şunları yapmak için bir repeat-until döngüsü kullan:
    • attempts[index] kullanarak geçerli denemeyi password değişkenine ata. Bu, tablodaki index konumundaki öğeyi okur.
    • Geçerli password değerini yazdır.
    • Sonraki denemeye geçmek için index değerini 1 artır (ör. index = index + 1).
  6. Döngü yalnızca password değeri correctPassword değerine eşit olduğunda durmalıdır.

Döngü her çalıştığında tablodan bir deneme okur, bunu yazdırır ve ardından sonraki denemeye geçer. Doğru parola bulunana kadar döngü devam eder.

Kendin dene

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

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

-- TODO:
-- Şunları yapmak için bir repeat-until döngüsü kullan:
-- 1. Geçerli denemeyi password değişkenine ata
-- 2. Denenen parolayı yazdır
-- 3. 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

Kendi başına pratik yap: Online Lua derleyicisi