Programação Dart - Declaração Switch Case

A instrução switch avalia uma expressão, corresponde ao valor da expressão a uma cláusula case e executa as instruções associadas a esse caso.

A seguir está a sintaxe.

switch(variable_expression) { 
   case constant_expr1: { 
      // statements; 
   } 
   break; 
  
   case constant_expr2: { 
      //statements; 
   } 
   break; 
      
   default: { 
      //statements;  
   }
   break; 
}

O valor do variable_expressioné testado em todos os casos do switch. Se a variável corresponder a um dos casos, o bloco de código correspondente é executado. Se nenhuma expressão case corresponder ao valor de variable_expression, o código dentro do bloco padrão será associado.

As seguintes regras se aplicam a uma instrução switch -

  • Pode haver qualquer número de declarações de caso em um switch.
  • As instruções case podem incluir apenas constantes. Não pode ser uma variável ou uma expressão.
  • O tipo de dados de variable_expression e a expressão constante devem corresponder.
  • A menos que você coloque uma pausa após cada bloco de código, a execução flui para o próximo bloco.
  • A expressão do caso deve ser única.
  • O bloco padrão é opcional.

O diagrama de fluxo do switch…case declaração é a seguinte -

Exemplo - switch ... case

void main() { 
   var grade = "A"; 
   switch(grade) { 
      case "A": {  print("Excellent"); } 
      break; 
     
      case "B": {  print("Good"); } 
      break; 
     
      case "C": {  print("Fair"); } 
      break; 
     
      case "D": {  print("Poor"); } 
      break; 
     
      default: { print("Invalid choice"); } 
      break; 
   } 
}

O exemplo verifica o valor da variável grade em relação ao conjunto de constantes (A, B, C, D e E) e executa os blocos correspondentes. Se o valor na variável não corresponder a nenhuma das constantes mencionadas acima, o bloco padrão será executado.

Os seguintes output é exibido na execução bem-sucedida do código acima.

Excellent