TOC

This article has been localized into Dutch by the community.

Controlestructuren:

Het switch statement

Het switch statement bestaat uit een set van als (if) statements. Het is een lijst met mogelijkheden, gekoppeld aan een actie voor elke mogelijkheid en een standaard actie voor als geen van de andere mogelijkheden waar is. Een simple switch statement ziet er als volgt uit:

int number = 1;
switch(number)
{
    case 0:
        Console.WriteLine("The number is zero!");
        break;
    case 1:
        Console.WriteLine("The number is one!");
        break;
}

De identifier om te controleren komt na het keyword switch, gevolgd door een lijst van case statements, bij elke case gaan we de identifier aftoetsen ten opzichte van de opgegeven waarde. Je zal zien dat elke case statement eindigt met een break statement. C# vereist van ons dat we de code verlaten voor hij ten einde loopt. In een funtie kan je ook een return statement gebruiken in plaats van een break statement.

In bovenstaand voorbeeld gebruiken we een integer, maar dat zou ook een string kunnen zijn (of een ander eenvoudig type). Je kan ook dezelfde actie gebruiken voor meerdere cases. We tonen dit met ons volgende voorbeeld, waar we input van de gebruiker verwerken in ons switch statement:

Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
    case "yes":
    case "maybe":
        Console.WriteLine("Great!");
        break;
    case "no":
        Console.WriteLine("Too bad!");
        break;
}

In bovenstaand voorbeeld stellen we de gebruiker een vraag en geven we drie mogelijke antwoorden (yes, no of maybe). We lezen dan de input die de gebruiker heeft ingegeven and maken op basis daarvan een switch statement. Om de gebruiker te helpen converteren we de input eerst naar lowercase om die daarna af te toetsen ten opzichte van onze lowercase strings. Op deze manier is er geen verschil tussen input in lowercase of uppercase.

Toch zou het kunnen gebeuren dat de gebruiker een tikfout maakt of iets completes anders ingeeft. In dat geval zou er geen output gegenereerd worden door dit switch statement. We kunnen dit opvangen met het default keyword:

Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
    case "yes":
    case "maybe":
        Console.WriteLine("Great!");
        break;
    case "no":
        Console.WriteLine("Too bad!");
        break;
    default:
        Console.WriteLine("I'm sorry, I don't understand that!");
        break;
}

Als geen enkel van de case statements waar is, dan wordt het default statement uitgevoerd (op voorwaarde natuurlijk dat je een default statement hebt gedefinieerd). Het default statement is optioneel, zoals we in vorige voorbeelden reeds zagen, maar het is geen slecht idee om dit standard te voorzien bij case statements.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!