Declaración de caso de Pascal

Has observado que if-then-elseLas declaraciones nos permiten implementar múltiples decisiones en un programa. Esto también se puede lograr utilizando elcase declaración de una manera más simple.

Sintaxis

La sintaxis de la declaración del caso es:

case (expression) of
   L1 : S1;
   L2: S2;
   ...
   ...
   Ln: Sn;
end;

Dónde, L1, L2... son etiquetas de caso o valores de entrada, que pueden ser números enteros, caracteres, elementos de datos booleanos o enumerados. S1, S2, ... son declaraciones de Pascal, cada una de estas declaraciones puede tener una o más de una etiqueta de caso asociada. La expresión se llamacase selector o la case index. El índice de casos puede asumir valores que corresponden a las etiquetas de los casos.

El enunciado del caso siempre debe tener un end declaración asociada con él.

Las siguientes reglas se aplican a una declaración de caso:

  • La expresión utilizada en una declaración de caso debe tener un tipo integral o enumerado o ser de un tipo de clase en el que la clase tiene 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 caso. Cada caso va seguido del valor con el que se va a comparar y dos puntos.

  • La etiqueta de caso para un caso debe ser del mismo tipo de datos que la expresión en la declaración de caso y debe ser una constante o un literal.

  • El compilador evaluará la expresión del caso. Si uno de los valores de la etiqueta del caso coincide con el valor de la expresión, se ejecuta la instrucción que sigue a esta etiqueta. Después de eso, el programa continúa después del final final.

  • Si ninguna de las etiquetas del caso coincide con el valor de la expresión, se ejecuta la lista de instrucciones después de la palabra clave else o else. Puede ser una lista de declaraciones vacía. Si no hay ninguna otra parte presente y ninguna constante de caso coincide con el valor de la expresión, el flujo del programa continúa después del final final.

  • Las declaraciones de casos pueden ser declaraciones compuestas (es decir, un bloque Begin ... End).

Diagrama de flujo

Ejemplo

El siguiente ejemplo ilustra el concepto:

program checkCase;
var
   grade: char;
begin
   grade := 'A';

   case (grade) of
      'A' : writeln('Excellent!' );
      'B', 'C': writeln('Well done' );
      'D' : writeln('You passed' );
      'F' : writeln('Better try again' );
   end;     
   
   writeln('Your grade is  ', grade );
end.

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

Excellent!
Your grade is A