De C# Switch Statement: Syntaxis, Voorbeelden & Best Practices
C# switch Statement
Ontdek hoe u complexe if-else ketens kunt vervangen door een schone, leesbare switch statement in C# — compleet met praktische voorbeelden.
Switch statements vereenvoudigen besluitvorming door een enkele expressie te evalueren en het matching case blok uit te voeren. Vergeleken met een lange if-else ladder is de switch syntaxis beknopter en makkelijker te onderhouden.
De basisstructuur is:
switch (variableOrExpression) {
case value1:
// Code voor value1
break;
case value2:
// Code voor value2
break;
// …
default:
// Code wanneer geen case matcht
}
Wanneer de expressie een case matcht, draait het corresponderende blok tot een break de switch beëindigt. Als geen case matcht, voert het default blok uit, wat een else clausule nabootst.
Zonder break zou uitvoering "fall through" en doorgaan in volgende cases — vaak leidend tot bugs. Voor een diepere duik in C# break statement, raadpleeg de officiële documentatie.
Voorbeeld 1: Klinkers Identificeren
using System;
namespace Conditional {
class SwitchCase {
public static void Main(string[] args) {
char ch;
Console.WriteLine("Voer een letter in");
ch = Convert.ToChar(Console.ReadLine());
switch(Char.ToLower(ch)) {
case 'a':
Console.WriteLine("Klinker");
break;
case 'e':
Console.WriteLine("Klinker");
break;
case 'i':
Console.WriteLine("Klinker");
break;
case 'o':
Console.WriteLine("Klinker");
break;
case 'u':
Console.WriteLine("Klinker");
break;
default:
Console.WriteLine("Geen klinker");
break;
}
}
}
}
Het uitvoeren van het programma produceert:
Voer een letter in X Geen klinker
Hier wordt de invoer van de gebruiker omgezet naar kleine letters en gematcht tegen klinker cases. Als geen klinker matcht, wordt het standaardbericht getoond.
Omdat alle klinker cases dezelfde actie uitvoeren, kunnen ze gegroepeerd worden:
Voorbeeld 2: Gegroepeerde Cases
using System;
namespace Conditional {
class SwitchCase {
public static void Main(string[] args) {
char ch;
Console.WriteLine("Voer een letter in");
ch = Convert.ToChar(Console.ReadLine());
switch(Char.ToLower(ch)) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
Console.WriteLine("Klinker");
break;
default:
Console.WriteLine("Geen klinker");
break;
}
}
}
}
De output blijft identiek, maar de code is merkbaar schoner.
Switch statements zijn beperkt tot specifieke datatypen:
- Primitieve typen (bool, char, integraal typen)
- Enumeraties (enum)
- String
- Nullable versies van de bovenstaande
Voorbeeld 3: Eenvoudige Rekenmachine
using System;
namespace Conditional {
class SwitchCase {
public static void Main(string[] args) {
char op;
double first, second, result;
Console.Write("Voer eerste getal in: ");
first = Convert.ToDouble(Console.ReadLine());
Console.Write("Voer tweede getal in: ");
second = Convert.ToDouble(Console.ReadLine());
Console.Write("Voer operator (+, -, *, /): ");
op = (char)Console.Read();
switch(op) {
case '+':
result = first + second;
Console.WriteLine("{0} + {1} = {2}", first, second, result);
break;
case '-':
result = first - second;
Console.WriteLine("{0} - {1} = {2}", first, second, result);
break;
case '*':
result = first * second;
Console.WriteLine("{0} * {1} = {2}", first, second, result);
break;
case '/':
result = first / second;
Console.WriteLine("{0} / {1} = {2}", first, second, result);
break;
default:
Console.WriteLine("Ongeldige Operator");
break;
}
}
}
}
Voorbeeldrun:
Voer eerste getal in: -13.11 Voer tweede getal in: 2.41 Voer operator (+, -, *, /): * -13.11 * 2.41 = -31.5951
Deze rekenmachine accepteert twee operanden en een operator, voert daarna de gevraagde operatie uit met een switch. Invoeren worden gelezen via ReadLine() en Read(); voor meer over invoer/uitvoer, zie C# Basic Input and Output.
Hoewel een if-else keten de switch kan vervangen, biedt de laatste duidelijke intentie en snellere uitvoering voor discrete waarden.
C Taal
- Circuit met een schakelaar: Praktische gids voor basis elektrische circuits
- Commuterende Diode Experiment: Inductieve Terugslag Onderdrukken met een Neonlamp
- Elektrische Schakelaars Begrijpen: Typen, Functies en Toepassingen
- Contact Bounce in Mechanische Schakelaars Elimineren
- Multimeters: van analog naar digitaal – een uitgebreide gids
- C# Break Statement: Hoe en Wanneer Te Gebruiken
- C# Continue Statement: Effectief Lusiteraties Overslaan
- C++ break statement: loop controle onder de knie
- C++ Switch‑Case Onder de Knie: Syntaxis, Gebruik en Praktische Voorbeelden
- C-basissyntax: Tokens, structuur en puntkomma's
- Python Pass Statement onder de knie krijgen: Een praktische gids