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 conditionKoş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.
Görev
KolayBasit bir parola doğrulama simülasyonu oluşturuyorsun.
passwordadında bir değişken oluştur ve değerini boş bir dize ("") olarak ayarla.correctPasswordadında başka bir değişken oluştur ve değerini"secure123"olarak ayarla.attemptsadında, aşağıdaki parola denemelerini sırayla içeren bir tablo oluştur:"password""123456""admin""secure123"
indexadında bir değişken oluştur ve değerini1olarak ayarla. Bunu, şu anda hangi denemede olduğunu takip etmek için kullanacaksın.- Şunları yapmak için bir
repeat-untildöngüsü kullan:attempts[index]kullanarak geçerli denemeyipassworddeğişkenine ata. Bu, tablodakiindexkonumundaki öğeyi okur.- Geçerli
passworddeğerini yazdır. - Sonraki denemeye geçmek için
indexdeğerini 1 artır (ör.index = index + 1).
- Döngü yalnızca
passworddeğericorrectPassworddeğ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 durBu 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
4Operatörler 2 İlişkisel ve Mantıksal
Eşitlik Operatörleriİlişkisel Operatörler'and' Operatörü'or' Operatörü'not' OperatörüKısa Devre DeğerlendirmesiTruthy ve Falsy DeğerlerÖzet - Basit Mantık10Tablolar Bölüm 1: Liste Stili
Tablo Nedir?Tablo Oluşturmaİndeks ile Elemanlara Erişmeİndeks ile Elemanları DeğiştirmeUzunluk Operatörü '#'table.insert()table.remove()Özet - Parti Üyelerini Yönetme13Proje: Basit İksir Dükkanı
Proje Kurulumuİksir Ekleme2Değişkenler ve Veri Tipleri
Değişken Nedir?SayılarStringlerBooleanlar'nil' Değeritype() Fonksiyonuİsimlendirme KurallarıÖzet - Karakter Profili5Temel Çıktı
Sabitleri YazdırmaDeğişkenleri YazdırmaBirden Fazla Değer YazdırmaMetinleri ve Değişkenleri Birleştirmetostring() FonksiyonuGirdiTip DönüşümüÖzet - Durum RaporuÖzet - 120'ye Kadar8String Manipülasyonu Temelleri
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Özet - Kullanıcı Adı Biçimlendirme3Operatörler 1 Aritmetik ve Birleştirme
Aritmetik OperatörlerMod Alma OperatörüÜs Alma OperatörüString BirleştirmeOperatör ÖnceliğiÖzet - Basit Hesaplamalar6Proje: Karakter İstatistiklerini Görüntüleme
Hoş Geldiniz MesajıKarakter İstatistiklerini Tanımlama9Fonksiyon Temelleri
Fonksiyon TanımlamaFonksiyon ÇağırmaParametreli FonksiyonlarÇoklu Parametreli Fonksiyonlar'return' İfadesiÖzet - Alan Hesaplayıcı12Döngü Temelleri
while Döngüsürepeat-until DöngüsüSayısal for DöngüsüAdımlı for Döngüsü'break' İfadesiÖzet - Geri SayımKendi başına pratik yap: Online Lua derleyicisi