Programação D - Declaração Switch

UMA switchdeclaraçã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 na linguagem de programação D é a seguinte -

switch(expression) { 
   case constant-expression  : 
      statement(s); 
      break; /* optional */ 

   case constant-expression  : 
      statement(s); 
      break; /* optional */ 
      * 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 são executadas até um break declaração é alcançada.

  • Quando um break a instrução for alcançada, a chave será encerrada e o fluxo de controle pula para a próxima linha após a instrução switch.

  • Nem todo caso precisa conter um break. Se nãobreakaparecer, o fluxo de controle cai para os casos subsequentes até que uma pausa seja alcançada.

  • 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. Nãobreaké necessário no caso padrão .

Diagrama de fluxo

Exemplo

import std.stdio;
 
int main () { 
   /* local variable definition */ 
   char grade = 'B';
   switch(grade) { 
      case 'A' : 
         writefln("Excellent!" ); 
         break; 
      case 'B' : 
      case 'C' : 
         writefln("Well done" ); 
         break; 
      case 'D' : 
         writefln("You passed" ); 
         break; 
      case 'F' : 
         writefln("Better try again" ); 
         break; 
      default : 
         writefln("Invalid grade" ); 
   } 
   writefln("Your grade is %c", grade ); 
  
   return 0; 
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Well done 
Your grade is B