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 ve onu az önce öğrendiğin while döngüsünden ayıran benzersiz bir özelliğe sahip başka bir döngü türü sunar. Temel fark, bir repeat-until döngüsünün koşuldan bağımsız olarak kod bloğunu her zaman en az bir kez çalıştırmasıdır.
Sözdizimi şöyle görünür:
repeat
-- tekrarlanacak kod
until conditionKoşulun, kod zaten bir kez çalıştırıldıktan sonra, en sonda kontrol edildiğine dikkat edin. 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ı zar 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 atmaya devam eder. Bu “önce çalıştır, sonra kontrol et” davranışı, devam edip etmeyeceğinize karar vermeden önce bir şeyin en az bir kez gerçekleşmesi gereken durumlar için repeat-until döngülerini ideal kılar.
Görev
Kolaypasswordadında bir değişken oluştur ve bunu boş bir dizeye ("") ayarla.correctPasswordadında başka bir değişken oluştur ve bunu"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 bunu1olarak ayarla. Bunu hangi denemede olduğunuzu takip etmek için kullanacaksın.- Bir
repeat-untildöngüsü kullanarak:- Mevcut denemeyi
attempts[index]kullanarakpassworddeğişkenine ata. Bu, tablodakiindexkonumundaki öğeyi okur - Mevcut
passworddeğerini yazdır - Sonraki denemeye geçmek için
indexdeğerini 1 artır (ör.index = index + 1)
- Mevcut denemeyi
- 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"
-- Şifre denemeleri listesi
local attempts = {"password", "123456", "admin", "secure123"}
local index = 1
-- TODO:
-- Bir repeat-until döngüsü kullanarak:
-- 1. Mevcut denemeyi talimatlardaki tam metne ata
-- 2. Denenen şifreyi 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