C # - Declaração de mudança

UMA switchinstrução permite que uma variável seja testada quanto à igualdade em relação a uma lista de valores. Cada valor é chamado de caso, e a variável que está sendo ligada é verificada para cadaswitch case.

Sintaxe

A sintaxe para um switch declaração em C # é a seguinte -

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

As seguintes regras se aplicam a um switch declaração -

  • o expression usado em um switch declaração deve ter um tipo integral ou enumerado, ou ser de um tipo de classe em que a classe tem uma única função de conversão para um tipo integral ou enumerado.

  • Você pode ter qualquer número de declarações de caso em um switch. Cada caso é seguido pelo valor a ser comparado e dois pontos.

  • o constant-expression para um caso, deve ser do mesmo tipo de dados que a variável no switch e deve ser uma constante ou literal.

  • Quando a variável que está sendo ativada é igual a um caso, as instruções após esse caso serão executadas até um break declaração é alcançada.

  • Quando um break a instrução é alcançada, a opção termina e o fluxo de controle salta para a próxima linha após a instrução switch.

  • Nem todo caso precisa conter um break. Se nãobreak aparecer, em seguida, ele gerará um erro de tempo de compilação.

  • UMA switch declaração pode ter um opcional defaultcaso, que deve aparecer no final do switch. O caso padrão pode ser usado para executar uma tarefa quando nenhum dos casos for verdadeiro.

Diagrama de fluxo

Exemplo

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 o código acima é compilado e executado, ele produz o seguinte resultado -

Well done
Your grade is B