0Pricing
Lua Academy · Ders

ipairs ile Yineleme

Diziler üzerinde sırayla döngü kurun.

ipairs ile Yineleme, 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.

ipairs Neden Kullanılır

Bir dizide indeks kullanarak ilerlemek işe yarar; ancak ipairs daha temiz ve güvenlidir. Bu işlev, her indeksi ve değeri sırayla size verir.

1 indeksinden başlar ve ilk nil değerinde durur; bu nedenle boşluksuz diziler için idealdir.

local fruits = {"apple", "banana", "cherry"}
for i, v in ipairs(fruits) do
  print(i, v)
end

Döngünün Yapısı

Kullanılan kalıp şöyledir: for index, value in ipairs(t) do ... end.

Her yinelemede index 1 tabanlı konumu, value ise o konumdaki öğeyi belirtir. Elle bir sayaç kullanmanız gerekmez.

local colors = {"red", "green", "blue"}
for i, c in ipairs(colors) do
  print("Color", i, "is", c)
end

İndeksi Yok Sayma

Yalnızca değerlere ihtiyacınız varsa, kullanılmadığını göstermek için geleneksel olarak indeksi _ adıyla belirtin.

Döngü yine öğeleri 1 tabanlı sırayla ziyaret eder.

local nums = {10, 20, 30}
local total = 0
for _, n in ipairs(nums) do
  total = total + n
end
print("sum:", total)

1'den Başlar, Boşlukta Durur

ipairs, 1 indeksinden başlar ve sonraki indeks nil olmadığı sürece ilerler.

Bir boşluk varsa orada durur. Bu nedenle ipairs, eksik konumlar içeren tablolar için değil, düzenli diziler içindir.

local t = {"a", "b", nil, "d"}
for i, v in ipairs(t) do
  print(i, v)
end

Değerleri Toplama

Sık karşılaşılan bir görev, bir listeyi toplam veya en büyük değer gibi tek bir sayıya indirgemektir.

ipairs bunu okunaklı hâle getirir: her değeri ziyaret edip biriktirirsiniz.

local prices = {3, 7, 2, 9}
local max = prices[1]
for _, p in ipairs(prices) do
  if p > max then max = p end
end
print("max:", max)

Yeni Bir Liste Oluşturma

Bir diziyi başka bir diziye dönüştürmek için ipairs ile table.insert işlevlerini birlikte kullanın.

Burada her sayıyı ikiyle çarparak yeni bir tabloda tutuyor, sırayı ve 1 tabanlı indeksleri koruyoruz.

local src = {1, 2, 3}
local doubled = {}
for _, n in ipairs(src) do
  table.insert(doubled, n * 2)
end
print(doubled[1], doubled[2], doubled[3])

ipairs ve pairs

pairs, dize anahtarları da dâhil olmak üzere her anahtarı, sırası garanti edilmeyen bir düzende gezer. ipairs ise yalnızca 1, 2, 3... şeklindeki tamsayı dizisini sırayla gezer.

Sıralı diziler için ipairs kullanın.

local t = {"x", "y"}
t.name = "extra"
for i, v in ipairs(t) do
  print(i, v)
end

Koşulla Filtreleme

Yalnızca eşleşen öğeleri tutmak için döngünün içinde bir if kullanın.

Aşağıda, üç harften uzun sözcükleri yeni bir dizi içinde topluyoruz.

local words = {"hi", "hello", "yo", "howdy"}
local long = {}
for _, w in ipairs(words) do
  if #w > 3 then table.insert(long, w) end
end
print(long[1], long[2])

Öğe Bulma

Arama yapmak için ipairs ile döngü kurun ve öğe bulunduğunda durun. Dizin, 1 tabanlı konumu gösterir.

Hedef göründüğünde break kullanarak erkenden dönüyoruz.

local names = {"Ann", "Bob", "Cy"}
local found = 0
for i, n in ipairs(names) do
  if n == "Bob" then found = i break end
end
print("Bob at index", found)

Gezerken Sayma

Döngünün içinde bir değişkeni artırarak eşleşen öğeleri sayabilirsiniz.

Bu yöntem, dizinlere doğrudan dokunmadan dizinin tamamını taramanızı sağlar.

local marks = {5, 8, 3, 9, 6}
local passes = 0
for _, m in ipairs(marks) do
  if m >= 6 then passes = passes + 1 end
end
print("passing:", passes)

İç İçe ipairs

Tablolardan oluşan bir tablo için her hücreyi ziyaret etmek üzere iki ipairs döngüsünü iç içe kullanın.

Dış döngü satırları, iç döngü ise sütunları gezer; ikisi de 1 tabanlıdır.

local grid = {{1, 2}, {3, 4}}
for _, row in ipairs(grid) do
  for _, cell in ipairs(row) do
    print(cell)
  end
end

Kısa Kontrol

ipairs döngüsünün nerede başlayıp nerede bittiğini hatırlayın.

Özet

for i, v in ipairs(t) kalıbını öğrendiniz: Bir diziyi 1 tabanlı sırayla gezer ve ilk boşlukta durur.

Listeleri toplamak, filtrelemek, aramak ve dönüştürmek için kullanın. Sırada uzunluğu # ile ölçmeyi ve öğeleri table.sort ile sıralamayı öğreneceksiniz.

Sıkça Sorulan Sorular

“ipairs ile Yineleme” dersi ücretsiz mi?

Evet — “ipairs ile Yineleme” 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.

“ipairs ile Yineleme” dersinde ne öğreneceğim?

Diziler üzerinde sırayla döngü kurun. 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.

“ipairs ile Yineleme” 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

  1. Tablo Olarak Diziler
  2. Öğe Ekleme ve Kaldırma
  3. ipairs ile Yineleme
  4. Uzunluk ve Sıralama
← Lua Academy Sayfasına Dön