0Pricing
Lua Academy · Lektion

Mit ipairs iterieren

Durchlaufen Sie Sequenzen in der richtigen Reihenfolge.

Mit ipairs iterieren ist eine kostenlose Lua Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Lua Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum ipairs

Eine Sequenz nach Index zu durchlaufen funktioniert zwar, aber ipairs ist übersichtlicher und sicherer. Es liefert Ihnen jeden Index und Wert in der richtigen Reihenfolge.

Die Iteration beginnt bei Index 1 und endet beim ersten nil – perfekt für lückenlose Sequenzen.

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

Aufbau der Schleife

Das Muster lautet for index, value in ipairs(t) do ... end.

Bei jedem Durchlauf ist index die 1-basierte Position und value das Element an dieser Position. Ein manueller Zähler ist nicht erforderlich.

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

Den Index ignorieren

Wenn Sie nur die Werte benötigen, benennen Sie den Index konventionell mit _, um zu zeigen, dass er nicht verwendet wird.

Die Schleife besucht die Elemente weiterhin in 1-basierter Reihenfolge.

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

Beginnt bei 1 und stoppt an einer Lücke

ipairs beginnt bei Index 1 und läuft weiter, solange der nächste Index nicht nil ist.

Wenn eine Lücke vorhanden ist, stoppt die Iteration dort. ipairs ist daher für lückenlose Sequenzen gedacht, nicht für Tabellen mit fehlenden Positionen.

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

Werte summieren

Eine häufige Aufgabe besteht darin, eine Liste auf eine einzelne Zahl zu reduzieren, etwa eine Summe oder ein Maximum.

ipairs macht dies übersichtlich: Besuchen Sie jeden Wert und addieren Sie ihn zu einem laufenden Ergebnis.

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)

Eine neue Liste aufbauen

Kombinieren Sie ipairs mit table.insert, um eine Sequenz in eine andere umzuwandeln.

Hier verdoppeln wir jede Zahl in einer neuen Tabelle und behalten dabei die Reihenfolge und die 1-basierten Indizes bei.

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 vs. pairs

pairs durchläuft jeden Schlüssel, einschließlich von String-Schlüsseln, in keiner garantierten Reihenfolge. ipairs durchläuft nur die Ganzzahlsequenz 1, 2, 3 ... in dieser Reihenfolge.

Verwenden Sie für geordnete Arrays ipairs.

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

Filtern mit einer Bedingung

Verwenden Sie eine if-Bedingung innerhalb der Schleife, um nur passende Elemente zu behalten.

Im Folgenden sammeln wir Wörter mit mehr als drei Buchstaben in einer neuen Sequenz.

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])

Ein Element finden

Durchsuchen Sie die Sequenz mit ipairs und beenden Sie die Schleife, sobald Sie das Element gefunden haben. Der Index gibt Ihnen die 1-basierte Position an.

Sobald das gesuchte Element erscheint, kehren wir mit break vorzeitig zurück.

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)

Beim Iterieren zählen

Sie können Treffer zählen, indem Sie innerhalb der Schleife eine Variable erhöhen.

So müssen Sie nicht direkt auf Indizes zugreifen und durchlaufen trotzdem die gesamte Sequenz.

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)

Verschachteltes ipairs

Bei einer Tabelle aus Tabellen verschachteln Sie zwei ipairs-Schleifen, um jede Zelle zu durchlaufen.

Die äußere Schleife durchläuft die Zeilen, die innere die Spalten – alle mit 1-basierten Indizes.

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

Kurzer Test

Rufen Sie sich ins Gedächtnis, wo ipairs beginnt und endet.

Zusammenfassung

Sie haben das Muster for i, v in ipairs(t) kennengelernt: Es durchläuft eine Sequenz in 1-basierter Reihenfolge und endet an der ersten Lücke.

Verwenden Sie es, um Listen zu summieren, zu filtern, zu durchsuchen und umzuwandeln. Als Nächstes messen Sie die Länge mit # und ordnen Elemente mit table.sort.

Häufig gestellte Fragen

Ist die Lektion „Mit ipairs iterieren“ kostenlos?

Ja — der vollständige Text von „Mit ipairs iterieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Lua Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Mit ipairs iterieren“?

Durchlaufen Sie Sequenzen in der richtigen Reihenfolge. Du übst Lua Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Lua Academy zu starten?

Keine Vorkenntnisse erforderlich. Lua Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Mit ipairs iterieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Lua Academy-Lektion Code schreiben und ausführen?

Ja. Jede Lua Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Arrays als Tabellen
  2. Elemente hinzufügen und entfernen
  3. Mit ipairs iterieren
  4. Länge und Sortierung
← Zurück zu Lua Academy