C # - Istruzione Switch

UN switchconsente di verificare l'uguaglianza di una variabile rispetto a un elenco di valori. Ogni valore è chiamato caso e per ciascuno di essi viene controllata la variabile attivataswitch case.

Sintassi

La sintassi per a switch l'istruzione in C # è la seguente:

switch(expression) {
   case constant-expression1  :
      statement(s);
      break;
   case constant-expression2  :
   case constant-expression3  :
      statement(s);
      break;
  
   /* you can have any number of case statements */
   default : /* Optional */
   statement(s);
}

Le seguenti regole si applicano a un file switch dichiarazione -

  • Il expression utilizzato in a switch deve avere un tipo integrale o enumerato o essere di un tipo di classe in cui la classe ha una singola funzione di conversione in un tipo integrale o enumerato.

  • È possibile avere un numero qualsiasi di istruzioni case all'interno di uno switch. Ogni caso è seguito dal valore da confrontare e da due punti.

  • Il constant-expression per un caso deve essere lo stesso tipo di dati della variabile nello switch e deve essere una costante o un valore letterale.

  • Quando la variabile da attivare è uguale a un caso, le istruzioni che seguono quel caso verranno eseguite fino a quando a break viene raggiunta la dichiarazione.

  • Quando un break viene raggiunta, lo switch termina e il flusso di controllo salta alla riga successiva dopo l'istruzione switch.

  • Non tutti i casi devono contenere un file break. Se nobreak appare, quindi solleverà un errore in fase di compilazione.

  • UN switch l'istruzione può avere un optional defaultcaso, che deve apparire alla fine dell'interruttore. Il caso predefinito può essere utilizzato per eseguire un'attività quando nessuno dei casi è vero.

Diagramma di flusso

Esempio

using System;

namespace DecisionMaking {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         char grade = 'B';
         
         switch (grade) {
            case 'A':
               Console.WriteLine("Excellent!");
               break;
            case 'B':
            case 'C':
               Console.WriteLine("Well done");
               break;
            case 'D':
               Console.WriteLine("You passed");
               break;
            case 'F':
               Console.WriteLine("Better try again");
               break;
               default:
            Console.WriteLine("Invalid grade");
               break;
         }
         Console.WriteLine("Your grade is  {0}", grade);
         Console.ReadLine();
      }
   }
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

Well done
Your grade is B