Switch-Case in C Begrijpen: Syntaxis, Voorbeelden en Best Practices
Wat is de Switch-statement in C?
De switch-constructie evalueert een enkele expressie en stuurt de programstroom naar het bijpassende case-label. Als geen match gevonden wordt, draait de optionele default-blok. Dit besluitvormingshulpmiddel is met name handig bij het afhandelen van discrete, constante waarden zoals menuopties, foutcodes of gebruikersselecties.
Elk case wordt uniek geïdentificeerd door een constante expressie. Wanneer de waarde van de expressie overeenkomt met een case-label, wordt het bijbehorende blok statements uitgevoerd, en verlaat de uitvoering de switch (tenzij een break ontbreekt, wat fall-through veroorzaakt).
Switch-Case Syntaxis
switch (expressie) {
case constante1:
// statements
break;
case constante2:
// statements
break;
// …
default:
// statements
break;
}
// statements na de switch
- De
expressiemoet evalueren naar een integraal of enum-type. - Case-labels zijn constante waarden; duplicaten creëren ambiguïteit en moeten vermeden worden.
- Elk
caseeindigt met een dubbele punt en wordt gevolgd door een blok code. - Gebruik
breakom een case te beëindigen; zonder het gaat de uitvoering door in volgende cases (fall-through). - Het
default-blok is optioneel en draait alleen als geen case matcht.
Hoe de Switch-statement Werkt

Voorbeeld 1: Basis Switch
#include <stdio.h>
int main() {
int num = 8;
switch (num) {
case 7:
printf("Waarde is 7");
break;
case 8:
printf("Waarde is 8");
break;
case 9:
printf("Waarde is 9");
break;
default:
printf("Buiten bereik");
break;
}
return 0;
}
Output:
Waarde is 8
Voorbeeld 2: Default Gebruiken
#include <stdio.h>
int main() {
int taal = 10;
switch (taal) {
case 1:
printf("C#\n");
break;
case 2:
printf("C\n");
break;
case 3:
printf("C++\n");
break;
default:
printf("Andere programmeertaal\n");
}
return 0;
}
Output:
Andere programmeertaal
Voorbeeld 3: Gecombineerde Cases
#include <stdio.h>
int main() {
int nummer = 5;
switch (nummer) {
case 1:
case 2:
case 3:
printf("Eén, Twee of Drie.\n");
break;
case 4:
case 5:
case 6:
printf("Vier, Vijf of Zes.\n");
break;
default:
printf("Groter dan Zes.\n");
}
return 0;
}
Output:
Vier, Vijf of Zes.
Geneste Switches
Switches kunnen genest worden, wat hiërarchische besluitvorming mogelijk maakt. Het volgende voorbeeld demonstreert een eenvoudige authenticatiestroom:
#include <stdio.h>
int main() {
int ID, wachtwoord;
printf("Voer uw ID in:\n");
scanf("%d", &ID);
switch (ID) {
case 500:
printf("Voer uw wachtwoord in:\n");
scanf("%d", &wachtwoord);
switch (wachtwoord) {
case 0:
printf("Welkom Lieve Programmeur\n");
break;
default:
printf("Onjuist wachtwoord\n");
}
break;
default:
printf("Onjuist ID\n");
}
return 0;
}
OUTPUT:
Voer uw ID in: 500 Voer uw wachtwoord in: 000 Welkom Lieve Programmeur

Waarom Switch Voorkeur Heeft boven Uitgebreide If-Else
Hoewel if-else-ketens dezelfde logica kunnen bereiken, worden ze onhandig naarmate het aantal opties toeneemt. Switch-statements bieden duidelijke syntaxis, betere leesbaarheid en kunnen door de compiler geoptimaliseerd worden naar jump-tabellen voor constante expressies.
Regels voor het Gebruik van Switch
- De controlerende expressie moet een integraal of enum-type zijn.
- Case-labels moeten constant, unieke waarden zijn.
- Elk case-label eindigt met een dubbele punt.
- Gebruik
breakom ongewenste fall-through te voorkomen. - Slechts één
default-label is toegestaan. - Geneste switches zijn toegestaan en vaak nuttig.
Belangrijkste Inzichten
- Switch is een robuust besluitvormingshulpmiddel voor discrete waarden.
- Altijd een
breakincluderen (tenzij意図的 fall-through). - Houd case-labels uniek en constant.
- Het
default-blok is optioneel maar aanbevolen voor foutafhandeling. - Geneste switches bieden gelaagde besluitlogica.
C Taal
- Circuit met een schakelaar: Praktische gids voor basis elektrische circuits
- De C# Switch Statement: Syntaxis, Voorbeelden & Best Practices
- C++ do‑while Lus: Syntaxis, Praktische Voorbeelden en Geneste Lussen
- C++ Switch‑Case Onder de Knie: Syntaxis, Gebruik en Praktische Voorbeelden
- C++ Pointers Onder de Knie: Concepten, Voorbeelden & Praktische Toepassingen
- C++ Operator Overloading – Praktische Handleiding met Code‑Voorbeelden
- C++ Functies Uitgelegd met Praktische Codevoorbeelden
- C# Collections Beheersen: Een Praktische Tutorial met Real-World Voorbeelden
- Python print()-functie: Praktische handleiding met voorbeelden
- Python's str.count() beheersen: Karakters & substrings tellen met voorbeelden
- Python round()-functie uitgelegd met praktische voorbeelden