if, elseif ve else İfadeleri
Lua'nın if/elseif/else söz dizimiyle koşullu dallanma mantığı yazın.
if, elseif ve else İfadeleri, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.
Temel if Deyimi
if deyimi bir koşulu değerlendirir ve koşul doğruysa bloğunu çalıştırır. Lua'da yalnızca false ve nil yanlışsaldır; 0 ve "" dahil diğer her şey doğrusaldır. Bloğu end ile sonlandırın.
local score = 85
if score >= 90 then
print("A grade")
end
if score >= 60 then
print("Passing") -- prints
end
if 0 then
print("0 is truthy!") -- prints in Lua
endif/elseif/else
Birden çok koşulu elseif ile zincirleyin ve else ile bir alternatif dal sağlayın. Lua koşulları yukarıdan aşağıya değerlendirir ve yalnızca eşleşen ilk dalı çalıştırır. Diğer dillerdeki switch/case yapılarından farklı olarak Lua'daki elseif tek bir anahtar sözcüktür (else if değildir).
local score = 75
if score >= 90 then
print("A")
elseif score >= 80 then
print("B")
elseif score >= 70 then
print("C") -- prints
elseif score >= 60 then
print("D")
else
print("F")
endKoşullarda Mantıksal Operatörler
Lua, mantıksal operatörler olarak and, or ve not kullanır. Bunlar kısa devre değerlendirmesi yapar: and ilk yanlışsal değeri veya son değeri, or ise ilk doğrusal değeri veya son değeri döndürür. Bu, dile özgü varsayılan değer kalıplarını mümkün kılar.
local age = 25
local hasID = true
if age >= 18 and hasID then
print("Entry allowed")
end
-- or for defaults
local name = nil
local display = name or "Guest"
print(display) -- Guestand/or ile Üçlü İşlemci Kullanım Kalıbı
Lua'da üçlü operatör yoktur; ancak and/or kalıbı bunu yaklaşık olarak taklit eder: condition and trueVal or falseVal. Bu, trueVal değerinin false veya nil olmaması koşuluyla çalışır. Daha güvenli üçlü mantık için satır içi bir if işlevi kullanın.
local x = 10
local label = (x > 5) and "big" or "small"
print(label) -- big
-- Safe ternary function
local function ternary(cond, t, f)
if cond then return t else return f end
end
print(ternary(false, "yes", "no")) -- noİç İçe if Deyimleri
if deyimlerini diğer dalların içine yerleştirebilirsiniz. İç içe yerleştirilen her blok kendi end anahtar sözcüğünü gerektirir. Çok derin iç içelik, mantığı düzleştirmek için erken dönüşler veya koruma koşulları kullanma fırsatına işaret eder.
local loggedIn = true
local isAdmin = false
if loggedIn then
if isAdmin then
print("Admin dashboard")
else
print("User dashboard") -- prints
end
else
print("Login required")
endKoruma Koşulları
Koruma koşulu, geçersiz veya uç durumları bir işlevin başında ele alan erken dönüştür; iç içeliği azaltır. Bu kalıp, "başarılı akış" kodunun girintisiz ve okunmasının daha kolay kalmasını sağlar.
local function processAge(age)
if type(age) ~= "number" then
return nil, "age must be a number"
end
if age < 0 then
return nil, "age cannot be negative"
end
-- happy path
return math.floor(age)
end
print(processAge(25.7)) -- 25
print(processAge(-1)) -- nil age cannot be negativeDeğerleri Karşılaştırma
Lua karşılaştırma operatörleri: == (eşit), ~= (eşit değil), <, >, <=, >=. Not: ~=, Lua'daki "eşit değil" operatörüdür; != değildir. Dizge karşılaştırmaları sözlükbilimsel sırayı kullanır. Dizgeleri sayılarla doğrudan karşılaştıramazsınız.
print(1 == 1) -- true
print(1 ~= 2) -- true
print("abc" < "abd") -- true (lexicographic)
print("10" == 10) -- false (different types)
-- Safe nil check
local val = nil
if val == nil then
print("no value")
endDizge Eşitliği
Lua'da iki dizge ancak ve ancak aynı bayt içeriğine ve uzunluğa sahipse eşittir. Lua dizgeleri stajladığı için eşit dizgeler çoğu zaman aynı bellek alanını gösterir; bu da == karşılaştırmasını hızlı bir işaretçi karşılaştırması hâline getirir. Dizgeleri is veya başvuru eşitliği ile asla karşılaştırmayın; == her zaman değere göre karşılaştırır.
local s1 = "hello"
local s2 = "hel" .. "lo"
print(s1 == s2) -- true (same content)
print(s1 == "Hello") -- false (case sensitive)
-- Check for empty string
local name = ""
if name == "" or name == nil then
print("name is empty or nil")
endTablo ve İşlev Karşılaştırması
Tablolar ve işlevler içeriğe göre değil, başvuruya göre karşılaştırılır. İçerikleri aynı olan iki farklı tablo değişmezi, aynı nesne olmadıkları sürece eşit değildir. Tablolar için özel eşitlik tanımlamak üzere __eq gibi meta yöntemleri kullanın.
local t1 = {1, 2, 3}
local t2 = {1, 2, 3}
local t3 = t1
print(t1 == t2) -- false (different objects)
print(t1 == t3) -- true (same reference)
local f1 = function() end
local f2 = function() end
print(f1 == f2) -- falseDile Özgü Kullanım Kalıpları
Koşullarla ilgili yaygın Lua kullanım kalıpları şunlardır: ön koşulları doğrulamak için assert() kullanmak, kısa varsayılanlar için and/or hilesini kullanmak ve herhangi bir değeri boole değerine dönüştürmek için çift olumsuzlamalardan (not not x) kaçınmak.
-- assert pattern
local function sqrt(n)
assert(n >= 0, "sqrt of negative")
return math.sqrt(n)
end
-- Convert to boolean
local val = 42
local boolVal = not not val
print(boolVal) -- true
-- Default parameter
local function greet(name)
name = name or "World"
print("Hello, " .. name)
end
greet() -- Hello, WorldKısa Kontrol
Lua'da hangi değerler yanlışsaldır?
Özet: Koşullu Deyimler
Özet:
if ... elseif ... else ... end— dallanmanın tam biçimi- Yalnızca
nilvefalseyanlışsaldır and/orkısa devre değerlendirmesi yapar ve işlenen değerlerini döndürür~=, Lua'da "eşit değil" anlamına gelir (!=değil)- Tablolar ve işlevler başvuruya, dizgeler değere göre karşılaştırılır
- İç içeliği azaltmak için koruma koşulları kullanın
Sıkça Sorulan Sorular
“if, elseif ve else İfadeleri” dersi ücretsiz mi?
Evet — “if, elseif ve else İfadeleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.
“if, elseif ve else İfadeleri” dersinde ne öğreneceğim?
Lua'nın if/elseif/else söz dizimiyle koşullu dallanma mantığı yazın. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Lua Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“if, elseif ve else İfadeleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- if, elseif ve else İfadeleri
- while ve repeat-until Döngüleri
- Sayısal for Döngüsü
- Genel for ve break