Skip to content
ICT Fusion Knowledgebase

Loops (herhaling)

Een loop (lus) voert een blok code meerdere keren uit. \ Loops zijn onmisbaar voor taken als: patronen tekenen, lijsten doorlopen, of wachten op een conditie.


For-loop โ€“ vast aantal herhalingen

Gebruik een for-loop als je vooraf weet hoe vaak je iets wilt herhalen. \ In JavaScript definieer je zelf de teller; in Python loop je over een range.

// Tel van 0 tot 4
for (let i = 0; i < 5; i++) {
    console.log(i);
}

// Gebruik in p5.js: teken 10 cirkels
for (let i = 0; i < 10; i++) {
    ellipse(i * 30 + 15, height / 2, 20, 20);
}
# Tel van 0 tot 4
for i in range(5):
    print(i)

# range(start, stop, stap)
for i in range(0, 10, 2):
    print(i)   # 0, 2, 4, 6, 8
void setup() {
  Serial.begin(9600);

  // Tel van 0 tot 4
  for (int i = 0; i < 5; i++) {
    Serial.println(i);
  }

  // for (start; stopconditie; stap)
  for (int i = 0; i < 10; i += 2) {
    Serial.println(i);   // 0, 2, 4, 6, 8
  }
}

void loop() {}

Over een lijst lopen

Je kunt ook direct over de elementen van een lijst lopen.

let namen = ["Jan", "Sam", "Lotte"];

for (let naam of namen) {
    console.log("Hallo", naam);
}
namen = ["Jan", "Sam", "Lotte"]

for naam in namen:
    print("Hallo", naam)
String namen[] = {"Jan", "Sam", "Lotte"};
int aantal = sizeof(namen) / sizeof(namen[0]);

for (int i = 0; i < aantal; i++) {
  Serial.print("Hallo ");
  Serial.println(namen[i]);
}

While-loop โ€“ zolang een conditie geldt

Gebruik een while-loop als je niet van tevoren weet hoe vaak je moet herhalen.

let pogingen = 0;

while (pogingen < 3) {
    console.log("Poging", pogingen);
    pogingen++;
}
pogingen = 0

while pogingen < 3:
    print("Poging", pogingen)
    pogingen += 1
int pogingen = 0;

while (pogingen < 3) {
  Serial.print("Poging ");
  Serial.println(pogingen);
  pogingen++;
}

break en continue

  • break stopt de loop voortijdig.
  • continue slaat de rest van de huidige iteratie over en gaat verder met de volgende.
for (let i = 0; i < 10; i++) {
    if (i === 7) break;      // stop bij 7
    if (i % 2 === 0) continue; // sla even getallen over
    console.log(i);           // 1, 3, 5
}
for i in range(10):
    if i == 7:
        break           # stop bij 7
    if i % 2 == 0:
        continue        # sla even getallen over
    print(i)            # 1, 3, 5
for (int i = 0; i < 10; i++) {
  if (i == 7) break;        // stop bij 7
  if (i % 2 == 0) continue; // sla even getallen over
  Serial.println(i);        // 1, 3, 5
}

Geneste loops

Een loop kan binnen een andere loop staan. Dit is handig voor grids, tabellen en patronen.

// 3ร—3 grid van rechthoeken (p5.js)
for (let rij = 0; rij < 3; rij++) {
    for (let kolom = 0; kolom < 3; kolom++) {
        rect(kolom * 40 + 10, rij * 40 + 10, 30, 30);
    }
}
# 3ร—3 grid afdrukken
for rij in range(3):
    for kolom in range(3):
        print(f"({rij},{kolom})", end=" ")
    print()  # nieuwe regel
for (int rij = 0; rij < 3; rij++) {
  for (int kolom = 0; kolom < 3; kolom++) {
    Serial.print("(");
    Serial.print(rij);
    Serial.print(",");
    Serial.print(kolom);
    Serial.print(") ");
  }
  Serial.println();  // nieuwe regel
}

Samenvatting

Loop-type Gebruik Teller
for met teller Vast aantal herhalingen Zelf beheren (JS) / range() (Python)
for ... of/in Over een lijst itereren Automatisch
while Onbekend aantal, afhankelijk van conditie Zelf beheren

Samenvatting begrippen

Begrip Betekenis
Iteratie ร‰รฉn herhaling van een loop
range(n) Python: reeks van 0 t/m n-1
break Stopt de loop voortijdig
continue Slaat de rest van de huidige iteratie over
Geneste loop Een loop binnen een andere loop
Oneindige loop Loop die nooit stopt (vergeet de update!)