Sayısal for Döngüsü
for i=start,limit,step söz dizimiyle sayısal aralıklar üzerinde yineleme yapın.
Sayısal for Döngüsü, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 3. 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.
Sayısal for Söz Dizimi
Lua'nın sayısal for döngüsü for var = start, limit, step do biçimindedir. step belirtilmezse varsayılan değeri 1 olur. Döngü değişkeni döngü gövdesiyle sınırlı yereldir ve gövde içinde değiştirilemez. Sınır ve adım, döngü başlamadan önce bir kez değerlendirilir.
-- Count 1 to 5
for i = 1, 5 do
io.write(i .. " ")
end
print() -- 1 2 3 4 5
-- Count with step 2
for i = 1, 10, 2 do
io.write(i .. " ")
end
print() -- 1 3 5 7 9Negatif Adımla Geri Sayım
Geriye doğru saymak için negatif bir adım kullanın. step negatif olduğunda döngü, var >= limit olduğu sürece devam eder. Negatif adım kullanılırken başlangıç değeri zaten sınırdan küçükse döngü gövdesi hiç çalışmaz.
for i = 10, 1, -1 do
io.write(i .. " ")
end
print()
-- 10 9 8 7 6 5 4 3 2 1
-- Step -2
for i = 10, 0, -2 do
io.write(i .. " ")
end
print()
-- 10 8 6 4 2 0Döngü Değişkeni Yereldir
Döngü denetim değişkeni (i) otomatik olarak yereldir. Değerini döngü içinde değiştiremezsiniz; Lua, döngü değişkenine yapılan atamaları yok sayar. Yinelemeleri farklı biçimde izlemek için ayrı bir yerel değişken kullanın.
for i = 1, 5 do
-- i is read-only inside the loop
-- i = i + 10 -- this creates a new global i, not the loop var
print(i) -- always 1, 2, 3, 4, 5 as expected
end
-- i is nil here (it was local to the loop)
print(i) -- nil (or whatever global i was)Diziler Üzerinde Yineleme
Sayısal for döngüsünün en yaygın kullanımı, diziler üzerinde dizinle yineleme yapmaktır. Sınır olarak #arr kullanın. ipairs'tan farklı olarak bu biçim, adım boyutunu denetlemenize ve geriye doğru yineleme yapmanıza olanak tanır; ayrıca yoğun dizilerde biraz daha hızlıdır.
local fruits = {"apple", "banana", "cherry", "date"}
for i = 1, #fruits do
print(i, fruits[i])
end
-- 1 apple
-- 2 banana
-- 3 cherry
-- 4 datefor ile Toplama
Sayısal for döngüleri diziler üzerinde değer biriktirmek için idealdir. Düzen her zaman aynıdır: sonuç değişkenini döngüden önce başlatın, içinde güncelleyin ve sonra kullanın.
local values = {10, 20, 30, 40, 50}
local total = 0
for i = 1, #values do
total = total + values[i]
end
print("Total:", total) -- 150
print("Count:", #values) -- 5
print("Mean:", total / #values) -- 30İç İçe Sayısal for
Matris dolaşma, tablo tabloları veya koordinat çiftleri oluşturma gibi iki boyutlu işlemler için iki sayısal for döngüsünü iç içe yerleştirin. Dış döngü satırları, iç döngü sütunları dolaşır; her yinelemede bir hücreye erişilir.
local rows, cols = 3, 4
for r = 1, rows do
for c = 1, cols do
io.write(string.format("%2d ", r * c))
end
print()
end
-- 1 2 3 4
-- 2 4 6 8
-- 3 6 9 12Ondalıklı Adımlar
Adım ve sınır değerleri kayan noktalı sayılar olabilir; ancak bu durum duyarlılık hatalarına yol açabilir. Kesin yineleme sayıları için tam sayıları tercih edin. Kayan noktalı sayılar kullanmanız gerekiyorsa döngü sayısının floor((limit - start) / step) + 1 olarak hesaplandığını unutmayın.
-- Float step
for x = 0.0, 1.0, 0.25 do
io.write(x .. " ")
end
print()
-- 0.0 0.25 0.5 0.75 1.0
-- Prefer integer math when possible
for i = 0, 4 do
local x = i * 0.25
io.write(x .. " ")
endSonuç Tablosu Oluşturma
Sayısal for döngüsü, mevcut verilerden yeni bir tablo oluşturmanın standart yoludur. Boş bir tablo oluşturun, ardından tabloyu dizinleriyle doldurmak için döngüyü kullanın.
local source = {1, 2, 3, 4, 5}
local squares = {}
for i = 1, #source do
squares[i] = source[i] ^ 2
end
for i = 1, #squares do
print(squares[i]) -- 1, 4, 9, 16, 25
endSayısal for içinde break
Sayısal for döngüsünden break ile erken çıkabilirsiniz. Yürütme, end ifadesinden sonraki ifadeye atlar. Bu, doğrusal aramada kullanışlıdır: hedef bulunana kadar yineleyin, ardından çıkın.
local data = {5, 3, 8, 1, 9, 2, 7}
local target = 9
local foundAt = nil
for i = 1, #data do
if data[i] == target then
foundAt = i
break
end
end
if foundAt then
print("Found at index " .. foundAt) -- 5
else
print("Not found")
endDöngü Sayısının Hesaplanması
for i = start, limit, step döngüsündeki yineleme sayısı max(0, floor((limit - start) / step) + 1) olur. Bunu anlamak, bir eksik veya fazla yineleme hatalarını önler. Adım 1 olduğunda sayı basitçe limit - start + 1 olur.
-- How many iterations?
local count = 0
for i = 1, 10, 3 do
count = count + 1
end
print(count) -- 4 (i = 1, 4, 7, 10)
count = 0
for i = 5, 1 do -- step=1 but start > limit
count = count + 1
end
print(count) -- 0 (no iterations)Hızlı Kontrol
for i = 10, 1, -3 do hangi değerler üzerinde yineleme yapar?
Özet: Sayısal for
Özet:
for i = start, limit, step do— adım varsayılan olarak 1'dir- Geri sayım için negatif adım kullanılır
- Döngü değişkeni otomatik olarak yereldir ve yalnızca okunabilir
- Sınır ve adım, döngü başlamadan önce bir kez değerlendirilir
breakerken çıkış sağlar- Standart düzen: sonuç tabloları oluşturmak, dizilerde arama yapmak ve toplam biriktirmek
Sıkça Sorulan Sorular
“Sayısal for Döngüsü” dersi ücretsiz mi?
Evet — “Sayısal for Döngüsü” 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.
“Sayısal for Döngüsü” dersinde ne öğreneceğim?
for i=start,limit,step söz dizimiyle sayısal aralıklar üzerinde yineleme yapı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 3. dersidir.
“Sayısal for Döngüsü” 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.