Programación D - Declaración de interruptor

UNA switchLa declaración permite probar la igualdad de una variable con una lista de valores. Cada valor se llama caso, y la variable que se enciende se verifica para cadaswitch case.

Sintaxis

La sintaxis de un switch declaración en el lenguaje de programación D es la siguiente:

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

Las siguientes reglas se aplican a switch declaración -

  • los expression usado en un switch La declaración debe tener un tipo integral o enumerado, o ser de un tipo de clase en el que la clase tenga una única función de conversión a un tipo integral o enumerado.

  • Puede tener cualquier número de declaraciones de casos dentro de un conmutador. Cada caso va seguido del valor que se va a comparar y dos puntos.

  • los constant-expression para un caso debe ser del mismo tipo de datos que la variable en el conmutador, y debe ser una constante o un literal.

  • Cuando la variable que se enciende es igual a un caso, las declaraciones que siguen a ese caso se ejecutan hasta que un break se alcanza la declaración.

  • Cuando un break se alcanza la declaración, el conmutador termina y el flujo de control salta a la siguiente línea que sigue a la declaración del conmutador.

  • No todos los casos deben contener un break. Si nobreakaparece, el flujo de control cae a través de los casos posteriores hasta que se alcanza una ruptura.

  • UNA switch declaración puede tener un opcional defaultcaso, que debe aparecer al final del interruptor. El caso predeterminado se puede utilizar para realizar una tarea cuando ninguno de los casos es verdadero. Nobreakes necesario en el caso predeterminado .

Diagrama de flujo

Ejemplo

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

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

Well done 
Your grade is B