edubun
Nederlands

Lussen: for en while

De gehele getallen van 1 tot 100 met de hand optellen kost tijd. Een for-lus van drie regels doet het meteen en drukt 5050 af.

Hetzelfde vele malen doen

De getallen 1 tot 5 met vijf console.log-regels afdrukken is prima. De getallen 1 tot 1000 zo afdrukken niet. Een lus voert hetzelfde codeblok steeds opnieuw uit, met telkens een kleine verandering, totdat een voorwaarde zegt dat het moet stoppen. Bij lussen bewijzen computers hun nut: ze vervelen zich nooit en raken nooit de tel kwijt.

De for-lus

for (let i = 1; i <= 5; i++) {
  console.log(i);
}
// prints 1, 2, 3, 4, 5 on separate lines

De haakjes na for bevatten drie delen, gescheiden door puntkomma's. Het eerste, let i = 1, wordt eenmaal uitgevoerd voordat de lus start en maakt een tellervariabele. Het tweede, i <= 5, is de voorwaarde, gecontroleerd vóór elke ronde; zodra zij false wordt, eindigt de lus. Het derde, i++, wordt na elke ronde uitgevoerd en verhoogt de teller. Eén keer door het blok gaan heet een iteratie. Loop het na: i is 1, de voorwaarde is true, 1 wordt afgedrukt, i wordt 2, enzovoort totdat i 6 wordt, de voorwaarde false is en het programma verdergaat na de sluitende accolade.

De teller heet meestal i, een traditie uit de wiskunde, maar elke naam werkt. Je kunt ook in andere stappen tellen: for (let i = 10; i >= 0; i -= 2) telt terug met 10, 8, 6, 4, 2, 0.

Een totaal opbouwen

Het meest voorkomende luspatroon is de accumulator. Maak vóór de lus een variabele, werk haar daarbinnen bij en gebruik haar erna. Hier is de som uit de inleiding:

let sum = 0;
for (let i = 1; i <= 100; i++) {
  sum += i;
}
console.log(sum);   // 5050

Let op waar elke regel staat. Als let sum = 0 binnen de lus stond, zou sum bij elke iteratie opnieuw ingesteld worden. Als console.log erin stond, zou het 100 tussenstanden afdrukken in plaats van één antwoord. Vóór en na de lus zijn even belangrijk als de lus zelf.

De while-lus

Een while-lus heeft alleen een voorwaarde. Zolang die true is, blijft de lus het blok uitvoeren. Gebruik dit als je niet vooraf weet hoeveel rondes je nodig hebt, bijvoorbeeld om een getal te verdubbelen totdat het groter is dan 1000.

let n = 1;
let steps = 0;
while (n <= 1000) {
  n *= 2;
  steps++;
}
console.log(n, steps);   // 1024 10

Iets binnen een while-lus moet de voorwaarde uiteindelijk false maken. Als je de regel vergeet die n verandert, blijft de voorwaarde altijd true. Dit is een oneindige lus en de pagina loopt vast. Als dat in een oefenvak gebeurt, herlaad je de pagina en herstel je de code. Bij een for-lus staat de bijwerkstap in de kop, waardoor deze fout minder vaak voorkomt.

break en continue

Twee sleutelwoorden veranderen de uitvoering binnen een lus. break verlaat de lus meteen. continue slaat de rest van de huidige iteratie over en springt naar de volgende. Een lus van 1 tot 10 met bovenaan if (i % 3 === 0) continue; drukt bijvoorbeeld elk getal af behalve 3, 6 en 9.

Uitgewerkt voorbeeld. Hoeveel getallen van 1 tot 50 zijn veelvouden van 7? Begin met let count = 0, laat i van 1 tot 50 lopen en schrijf binnenin if (i % 7 === 0) count++;. Na de lus is count gelijk aan 7: het zijn 7, 14, 21, 28, 35, 42 en 49.

for (start; voorwaarde; bijwerken) { blok } for (let i = 1; i <= 5; i++)

lusCode die een blok steeds opnieuw uitvoert
iteratieEén keer door het lusblok gaan
tellerDe variabele die rondes telt, vaak i
accumulatorEen variabele die binnen een lus wordt opgebouwd, zoals sum
whileHerhaalt zolang een voorwaarde true is
oneindige lusEen lus waarvan de voorwaarde nooit false wordt
breakVerlaat de lus nu
continueSla over naar de volgende iteratie
  1. Hoeveel regels drukt deze code af?
    for (let i = 0; i < 4; i++) {
      console.log(i);
    }
  2. Wat is het laatst afgedrukte getal?
    for (let i = 0; i < 4; i++) {
      console.log(i);
    }
  3. Wat drukt deze code af?
    let total = 0;
    for (let i = 1; i <= 4; i++) {
      total += i;
    }
    console.log(total);
  4. Wat drukt deze code af?
    let p = 1;
    for (let i = 1; i <= 5; i++) {
      p *= 2;
    }
    console.log(p);
  5. Wat drukt deze code af?
    let n = 10;
    while (n > 3) {
      n -= 3;
    }
    console.log(n);
  6. Hoeveel regels drukt deze code af?
    for (let i = 10; i >= 0; i -= 2) {
      console.log(i);
    }
  7. Wat drukt deze code af?
    for (let i = 1; i <= 10; i++) {
      if (i === 4) break;
      console.log(i);
    }
    • 1 2 3 on separate lines
    • 1 to 10 except 4
    • 1 2 3 4 on separate lines
  8. Hoeveel regels drukt deze code af?
    for (let i = 1; i <= 10; i++) {
      if (i % 2 === 0) continue;
      console.log(i);
    }
  9. Wat is er mis met deze lus?
    let i = 0;
    while (i < 5) {
      console.log(i);
    }
    • Niets
    • i verandert nooit, dus ze stopt nooit
    • Ze drukt niets af
  10. Wat drukt deze code af?
    let count = 0;
    for (let i = 1; i <= 50; i++) {
      if (i % 7 === 0) count++;
    }
    console.log(count);
Belangrijkste punten
  • for (start; voorwaarde; bijwerken) { ... } herhaalt zolang de voorwaarde true is.
  • Maak accumulatoren vóór de lus, werk ze binnenin bij en gebruik ze erna.
  • while (voorwaarde) { ... } past bij lussen met een onbekend aantal rondes.
  • Iets moet de voorwaarde false maken, anders eindigt de lus nooit.
  • break verlaat de lus; continue springt naar de volgende ronde.
Bronnen van deze cursus (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17).

Geraadpleegd: 2026-10-17