This article has been localized into Italian by the community.
L'istruzione switch
L'istruzione switch è come un insieme di istruzioni if. È una lista di possibilità, con un'azione per ogni possibilità, e un'azione facoltativa di default, nel caso in cui null'altro valga per vero. Una semplice istruzione switch si presenta così:
int number = 1;
switch(number)
{
case 0:
Console.WriteLine("The number is zero!");
break;
case 1:
Console.WriteLine("The number is one!");
break;
}
L'identificatore da verificare viene inserito dopo la parola chiave switch e dopo c'è l'elenco delle istruzioni case, in cui viene controllato l'identificatore rispetto a un determinato valore. Noterai che abbiamo un'istruzione break alla fine di ogni caso. C# richiede semplicemente che lasciamo il blocco prima che finisca. Nel caso in cui stiate scrivendo una funzione, è possibile utilizzare un'istruzione return anziché l'istruzione break.
In questo caso, usiamo un numero intero, ma potrebbe essere anche una stringa o qualsiasi altro tipo. Inoltre, è possibile specificare la stessa azione per più casi. Lo faremo anche nel prossimo esempio, in cui prendiamo un input da parte dell'utente e lo usiamo nella nostra istruzione 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;
}
In questo esempio, poniamo all'utente una domanda e suggeriamo di inserire sì, no o forse. Quindi leggiamo l'input dell'utente e creiamo un'istruzione switch per questo. Per aiutare l'utente, convertiamo l'input in minuscolo prima di controllarlo con le nostre stringhe in minuscolo, in modo che non vi sia alcuna differenza tra lettere minuscole e maiuscole.
Tuttavia, l'utente potrebbe fare un errore di battitura o provare a scrivere qualcosa di completamente diverso, e in tal caso, nessun output verrà generato da questa specifica istruzione switch. Inserisci la parola chiave predefinita!
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;
}
Se nessuna delle istruzioni case è stata valutata su true, verrà eseguita l'istruzione predefinita, se presente. È opzionale, come abbiamo visto negli esempi precedenti.