Numerische for-Schleife
Durchlaufen Sie numerische Bereiche mit der Syntax for i=start,limit,step
Numerische for-Schleife 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.
Syntax der numerischen for-Schleife
Luas numerische for-Schleife hat die Form for var = start, limit, step do. Wenn step weggelassen wird, ist der Standardwert 1. Die Schleifenvariable ist auf den Schleifenrumpf beschränkt und kann innerhalb der Schleife nicht geändert werden. Grenzwert und Schrittweite werden einmal vor Beginn der Schleife ausgewertet.
-- 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 9Countdown mit negativer Schrittweite
Verwenden Sie eine negative Schrittweite, um herunterzuzählen. Die Schleife wird fortgesetzt, solange var >= limit gilt (bei negativer Schrittweite). Wenn der Startwert bei einer negativen Schrittweite bereits kleiner als der Grenzwert ist, wird der Schleifenrumpf nie ausgeführt.
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 0Die Schleifenvariable ist lokal
Die Schleifensteuerungsvariable (i) ist automatisch lokal. Sie können ihren Wert innerhalb der Schleife nicht ändern – Lua ignoriert Zuweisungen an die Schleifenvariable. Wenn Sie Iterationen anders verfolgen möchten, verwenden Sie eine separate lokale Variable.
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)Arrays durchlaufen
Die häufigste Verwendung der numerischen for-Schleife ist das Durchlaufen von Arrays anhand ihres Index. Verwenden Sie #arr als Grenzwert. Anders als bei ipairs können Sie mit dieser Form die Schrittweite steuern und rückwärts iterieren. Bei dichten Arrays ist sie außerdem etwas schneller.
local fruits = {"apple", "banana", "cherry", "date"}
for i = 1, #fruits do
print(i, fruits[i])
end
-- 1 apple
-- 2 banana
-- 3 cherry
-- 4 dateSummieren mit for
Numerische for-Schleifen eignen sich ideal, um Werte über Arrays hinweg zu akkumulieren. Das Muster ist immer gleich: Eine Ergebnisvariable vor der Schleife initialisieren, innerhalb der Schleife aktualisieren und danach verwenden.
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) -- 30Verschachtelte numerische for-Schleifen
Verschachteln Sie zwei numerische for-Schleifen für zweidimensionale Operationen wie das Durchlaufen von Matrizen und verschachtelten Tabellen oder das Erzeugen von Koordinatenpaaren. Die äußere Schleife durchläuft die Zeilen, die innere die Spalten – jede Iteration greift auf eine Zelle zu.
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 12Gleitkomma-Schrittweiten
Schrittweiten und Grenzwerte können Gleitkommazahlen sein, allerdings kann dies zu Genauigkeitsfehlern führen. Für eine exakte Anzahl von Iterationen sollten Sie Ganzzahlen verwenden. Wenn Sie Gleitkommazahlen verwenden müssen, beachten Sie, dass die Anzahl der Schleifendurchläufe als floor((limit - start) / step) + 1 berechnet wird.
-- 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 .. " ")
endErgebnistabelle erstellen
Eine numerische for-Schleife ist die übliche Methode, um aus vorhandenen Daten eine neue Tabelle zu erstellen. Erstellen Sie eine leere Tabelle und füllen Sie sie anschließend mithilfe der Schleife anhand des Index.
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
endbreak in numerischen for-Schleifen
Sie können eine numerische for-Schleife mit break vorzeitig verlassen. Die Ausführung springt zu der Anweisung nach end. Das ist für eine lineare Suche nützlich: Iterieren Sie, bis das Ziel gefunden wurde, und verwenden Sie dann break.
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")
endBerechnung der Schleifenanzahl
Die Anzahl der Iterationen von for i = start, limit, step beträgt max(0, floor((limit - start) / step) + 1). Wenn Sie dies verstehen, vermeiden Sie Off-by-one-Fehler. Bei einer Schrittweite von 1 lautet die Anzahl einfach limit - start + 1.
-- 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)Kurztest
Welche Werte durchläuft for i = 10, 1, -3 do?
Zusammenfassung: Numerische for-Schleife
Zusammenfassung:
for i = start, limit, step do– die Schrittweite ist standardmäßig 1- Negative Schrittweite für Countdowns
- Die Schleifenvariable ist automatisch lokal und schreibgeschützt
- Grenzwert und Schrittweite werden einmal vor Beginn der Schleife ausgewertet
breakbeendet die Schleife vorzeitig- Typische Verwendung: Ergebnistabellen erstellen, Arrays durchsuchen und Summen akkumulieren
Häufig gestellte Fragen
Ist die Lektion „Numerische for-Schleife“ kostenlos?
Ja — der vollständige Text von „Numerische for-Schleife“ 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 „Numerische for-Schleife“?
Durchlaufen Sie numerische Bereiche mit der Syntax for i=start,limit,step 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 „Numerische for-Schleife“?
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
- if-, elseif- und else-Anweisungen
- while- und repeat-until-Schleifen
- Numerische for-Schleife
- Generische for-Schleife und break