Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Hoofdstuk 8 — Lussen (for, while, do-while, foreach)

Herhaling automatiseer je met lussen. Je leert de vormen for, while, do-while en de enhanced for (foreach) voor arrays en collecties.

Voorbeeld 1 — Klassieke for-lus Introductie: De klassieke for-lus gebruikt een teller met start, voorwaarde en update.

public class ForKlassiek {
    public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {
            System.out.println(i);
        }
    }
}

Toelichting: Gebruik een for-lus als je precies weet hoe vaak je herhaalt.

Voorbeeld 2 — While-lus Introductie: While herhaalt zolang de voorwaarde waar is; controle vindt plaats vóór de iteratie.

public class WhileDemo {
    public static void main(String[] args) {
        int j = 0;
        while (j < 3) {
            System.out.println(j);
            j++;
        }
    }
}

Toelichting: While is handig als het aantal herhalingen niet vaststaat en verandert op basis van runtime-waarden.

Voorbeeld 3 — Do-while (voert het blok minimaal één keer uit)

public class DoWhileDemo {
    public static void main(String[] args) {
        int k = 0;
        do {
            System.out.println(k);
            k++;
        } while (k < 3);
    }
}

Voorbeeld 4 — Enhanced for (foreach) met array

public class ForEachArray {
    public static void main(String[] args) {
        int[] cijfers = {7, 8, 9};
        for (int c : cijfers) {
            System.out.println(c);
        }
    }
}

Voorbeeld 5 — break en continue

public class BreakContinueDemo {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            if (i == 2) continue; // sla 2 over
            if (i == 4) break;    // stop bij 4
            System.out.println(i);
        }
    }
}

Voorbeeld 6 — Geneste lussen en complexiteit

public class GenesteLussen {
    public static void main(String[] args) {
        for (int r = 1; r <= 3; r++) {
            for (int c = 1; c <= 3; c++) {
                System.out.print(r + "," + c + " ");
            }
            System.out.println();
        }
    }
}

Voorbeeld 7 — Oneindige lus met exit-voorwaarde

public class OneindigMetExit {
    public static void main(String[] args) {
        int i = 0;
        while (true) {
            if (i == 3) break;
            System.out.println(i);
            i++;
        }
    }
}

Voorbeeld 8 — Valstrik: wijzig niet de iterator in foreach

public class ForEachValstrik {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        for (int v : arr) {
            // v++ wijzigt NIET het arrayelement; v is een kopie
            System.out.println(v);
        }
    }
}

Tips:

  • Kies de lus die je intentie het best uitdrukt: foreach voor iteratie zonder index.
  • Vermijd oneindige lussen tenzij je expliciet een stopconditie hebt.
  • Werk aan leesbaarheid: vermijd te diepe geneste lussen; splits op in methoden.

Koppeling met oefeningen:

  • Zie java-workbook/src/chapter_8.md voor loop-oefeningen.
  • Uitwerkingen in java-solutions/src/chapter_8.md.