TOC

This article has been localized into Romanian by the community.

Structuri de control:

Instrucțiunea switch

Instrucțiunea switch este asemănătoare grupării mai multor instrucțiuni if. Ea cuprinde o listă de posibilități, cu câte o acțiune pentru fiecare, și o acțiune implicită, pentru cazul în care nici o condiție nu este adevărată. Un exemplu simplu de instrucțiune switch arată așa:

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

Variabila testată este scrisă după cuvântul-cheie switch, după care apare o listă de instrucțiuni case unde se compară variabila cu câte o valoare dată. Se observă că fiecare instrucțiune case se termină cu câte o instrucțiune break. În C# este necesară părăsirea blocului de instrucțiuni înainte să se termine. În cazul în care instrucțiunea switch se folosește într-o funcție, în locul instrucțiunii break se poate returna o valoare folosind return.

În cazul de față se folosește o valoare întreagă, dar ea poate fi și un șir de caractere, sau orice tip simplu de variabilă. De asemenea, se poate specifica aceeași acțiune pentru mai multe cazuri. Vom face acest lucru în următorul exemplu, unde vom considera informație dată de utilizator și o vom folosi în instrucția noastră switch:

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;
}

În acest exemplu punem o întrebare utilizatorului și sugerăm să răspundă cu da, nu sau poate. Se citește răspunsul și se prelucrează într-o instrucție switch. Pentru a ajuta utilizatorul, răspunsul se transformă în litere mici înainte de a-l compara cu șiruri de caractere pentru a nu fi diferențe între litere mici și mari la evaluare.

Totuși utilizatorul s-ar putea să facă o greșeală de scriere sau să dea un alt răspuns, iar în acest caz instrucțiunea switch nu va genera nici un răspuns. Pentru acesta se poate folosi cuvântul-cheie default:

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;
}

Dacă niciuna dintre cazurile considerate se dovedește a fi adevărată, atunci instrucțiunea default, dacă există, se va executa. Ea este opțională, după cum am văzut în exemplele trecute.


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!