Lua Academy · Les

Numerieke for-lus

Doorloop numerieke bereiken met de syntaxis for i=start,limit,step

Les 3 van 412 stappen

Numerieke for-lus is een gratis Lua Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Lua Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Lua Academy bevat in totaal 4 lessen.

Syntaxis van numerieke for

De numerieke for-lus van Lua heeft de vorm for var = start, limit, step do. De step is standaard 1 als die wordt weggelaten. De lusvariabele is lokaal binnen de body van de lus en kan daar niet worden gewijzigd. De limiet en stap worden één keer geëvalueerd voordat de lus begint.

-- 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 9

Aftellen met een negatieve stap

Gebruik een negatieve stap om af te tellen. De lus gaat door zolang var >= limit (als de stap negatief is). Als de startwaarde bij een negatieve stap al kleiner is dan de limiet, wordt de body van de lus nooit uitgevoerd.

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 0

De lusvariabele is lokaal

De lusbesturingsvariabele (i) is automatisch lokaal. Je kunt de waarde ervan binnen de lus niet wijzigen; Lua negeert toewijzingen aan de lusvariabele. Gebruik een afzonderlijke lokale variabele als je iteraties op een andere manier wilt bijhouden.

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 doorlopen

De meest voorkomende toepassing van de numerieke for-lus is arrays doorlopen op basis van hun index. Gebruik #arr als limiet. In tegenstelling tot ipairs kun je met deze vorm de stapgrootte bepalen en achteruit doorlopen. Voor dichte arrays is deze vorm bovendien iets sneller.

local fruits = {"apple", "banana", "cherry", "date"}

for i = 1, #fruits do
  print(i, fruits[i])
end
-- 1  apple
-- 2  banana
-- 3  cherry
-- 4  date

Optellen met for

Numerieke for-lussen zijn ideaal om waarden in arrays te accumuleren. Het patroon is altijd hetzelfde: initialiseer een resultaatvariabele vóór de lus, werk die binnen de lus bij en gebruik haar erna.

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

Geneste numerieke for-lussen

Genest twee numerieke for-lussen voor tweedimensionale bewerkingen, zoals het doorlopen van een matrix, een tabel met tabellen of het genereren van coördinatenparen. De buitenste lus doorloopt de rijen en de binnenste lus de kolommen; elke iteratie benadert één cel.

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 12

Kommagetallen als stap

De stap en limieten mogen kommagetallen zijn, al kan dit afrondingsfouten veroorzaken. Gebruik gehele getallen als je exacte aantallen iteraties nodig hebt. Als je toch kommagetallen gebruikt, houd er dan rekening mee dat het aantal lussen wordt berekend als floor((limit - start) / step) + 1.

-- 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 .. " ")
end

Een resultaattabel opbouwen

Een numerieke for-lus is de standaardmanier om op basis van bestaande gegevens een nieuwe tabel op te bouwen. Maak een lege tabel en gebruik daarna de lus om die op index te vullen.

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
end

break in een numerieke for-lus

Je kunt een numerieke for-lus vroegtijdig verlaten met break. De uitvoering springt naar de instructie na end. Dit is nuttig voor lineair zoeken: doorloop de waarden totdat het doel is gevonden en gebruik dan 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")
end

Het aantal iteraties berekenen

Het aantal iteraties van for i = start, limit, step is max(0, floor((limit - start) / step) + 1). Als je dit begrijpt, voorkom je fouten waarbij je één iteratie te veel of te weinig uitvoert. Bij een stap van 1 is het aantal eenvoudigweg 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)

Korte controle

Welke waarden doorloopt for i = 10, 1, -3 do?

Samenvatting: numerieke for

Samenvatting:

  • for i = start, limit, step do — de stap is standaard 1
  • Gebruik een negatieve stap om af te tellen
  • De lusvariabele is automatisch lokaal en alleen-lezen
  • De limiet en stap worden één keer geëvalueerd voordat de lus begint
  • break verlaat de lus vroegtijdig
  • Standaardpatroon: resultaattabellen opbouwen, arrays doorzoeken en sommen accumuleren
Gratis beginnen

Leer Lua met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
40
Lessen
159

Veelgestelde vragen

Is de les “Numerieke for-lus” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Lua Academy, waaronder “Numerieke for-lus”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Lua Academy bevat in totaal 4 lessen.

Wat leer ik in “Numerieke for-lus”?

Doorloop numerieke bereiken met de syntaxis for i=start,limit,step Je oefent met Lua Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Lua Academy te beginnen?

Ervaring vooraf is niet nodig. Lua Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Numerieke for-lus”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Lua Academy?

Ja. Elke les over Lua Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. if-, elseif- en else-instructies
  2. while- en repeat-until-lussen
  3. Numerieke for-lus
  4. Generieke for en break
← Terug naar Lua Academy