Istruzione switch C # (con esempi)

In questo articolo impareremo l'istruzione switch in C # e come usarli con esempi.

L'istruzione Switch può essere utilizzata per sostituire l'istruzione if … else if in C #. Il vantaggio di usare switch over if … else if è che i codici appariranno molto più puliti e leggibili con switch.

La sintassi dell'istruzione switch è:

 switch (variabile / espressione) (case value1: // Dichiarazioni eseguite se espressione (o variabile) = valore1 interruzione; case value2: // Dichiarazioni eseguite se espressione (o variabile) = valore1 interruzione;……………… default: / / Dichiarazioni eseguite se nessun caso corrisponde) 

L'istruzione switch valuta l'espressione (o la variabile) e confronta il suo valore con i valori (o espressione) di ogni caso (valore1, valore2,…). Quando trova il valore corrispondente, vengono eseguite le istruzioni all'interno di quel caso.

Ma, se nessuno dei casi precedenti corrisponde all'espressione, defaultvengono eseguite le istruzioni all'interno del blocco. L'istruzione predefinita alla fine di switch è simile al blocco else nell'istruzione if else.

Tuttavia, un problema con l'istruzione switch è che, quando viene trovato il valore corrispondente, esegue tutte le istruzioni successive fino alla fine del blocco switch.

Per evitare ciò, usiamo una breakdichiarazione alla fine di ogni caso. L'istruzione break impedisce al programma di eseguire istruzioni non corrispondenti terminando l'esecuzione dell'istruzione switch.

Per ulteriori informazioni sull'istruzione break, visitare C # break statement.

Esempio 1: istruzione switch C #

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': Console.WriteLine("Vowel"); break; case 'e': Console.WriteLine("Vowel"); break; case 'i': Console.WriteLine("Vowel"); break; case 'o': Console.WriteLine("Vowel"); break; case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

Quando eseguiamo il programma, l'output sarà:

 Inserisci un alfabeto X Non una vocale 

In questo esempio, all'utente viene richiesto di inserire un alfabeto. L'alfabeto viene convertito in minuscolo utilizzando il ToLower()metodo se è in maiuscolo.

Quindi, l'istruzione switch controlla se l'alfabeto inserito dall'utente è uno di a, e, i, o or u.

Se uno dei casi corrisponde, Vowelviene stampato altrimenti il ​​controllo va al blocco predefinito e Not a vowelviene stampato come output.

Poiché l'output per tutte le vocali è lo stesso, possiamo unire i casi come:

Esempio 2: istruzione switch C # con casi raggruppati

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': case 'e': case 'i': case 'o': case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

L'output di entrambi i programmi è lo stesso. Nel programma precedente, tutte le vocali stampano l'output Vowele interrompono l'istruzione switch.

Sebbene l'istruzione switch renda il codice più pulito rispetto all'istruzione if … else if, switch è limitato a lavorare con tipi di dati limitati. L'istruzione Switch in C # funziona solo con:

  • Tipi di dati primitivi: bool, char e tipo integrale
  • Tipi enumerati (enumerazione)
  • String Class
  • Tipi nullable dei tipi di dati precedenti

Esempio 3: semplice programma di calcolo che utilizza l'istruzione switch C #

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char op; double first, second, result; Console.Write("Enter first number: "); first = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter second number: "); second = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter 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("Invalid Operator"); break; ) ) ) ) 

Quando eseguiamo il programma, l'output sarà:

 Immettere il primo numero: -13,11 Immettere il secondo numero: 2,41 Immettere l'operatore (+, -, *, /): * -13,11 * 2,41 = -31,5951 

Il programma precedente accetta due operandi e un operatore come input dall'utente ed esegue l'operazione in base all'operatore.

Gli input vengono presi dall'utente utilizzando il metodo ReadLine()e Read(). Per ulteriori informazioni, visita Input e output di base di C #.

Il programma utilizza l'istruzione switch case per il processo decisionale. In alternativa, possiamo usare if-else if ladder per eseguire la stessa operazione.

Articoli interessanti...