Case Of
Esta forma es muy �til cuando se tiene que elegir entre m�s de dos opciones, por
lo que le llamaremos forma de selecci�n m�ltiple.
La siguiente figura representa la selecci�n m�ltiple.

Su formato es :
case of
constante.1 :
begin
;
end;
constante.2 :
begin
;
end;
.....................
.....................
constante.N :
begin
;
end
else
begin
;
end;
end; { FIN DE CASE }
Dependiendo del valor que tenga la expresi�n selector, se ejecutar�n las instrucciones
etiquetadas por constante .
Aqu� tambi�n los bloques de instrucciones pueden ser reemplazados por instrucciones
simples.
Conviene tener presente que no debe escribirse punto y coma antes de la palabra else.
Reglas:
La expresi�n se eval�a y se compara con las constantes;las constantes son
listas de uno o m�s posibles valores de separados por comas. Ejecutadas
la(s) , el control se pasa a la primera instrucci�n a continuaci�n
de end (fin de case).
La cl�usula else es opcional.
Si el valor de no est� comprendido en ninguna lista de constantes y no
existe la cl�usula else, no sucede nada y sigue el flujo del programa; si existe la
cl�usula else se ejecutan la(s) a continuaci�n de la cl�usula else.
El selector debe ser un tipo ordinal ( integer, char, boolean o enumerado). Los
n�meros reales no pueden ser utilizados ya que no son ordinales. Los valores
ordinales de los l�mites inferiores y superiores deben de estar dentro del rango
-32768 a 32767. Por consiguiente, los tiposs string, longint y word no son v�lidos.
Todas las constantes case deben ser �nicas y de un tipo ordinal compatible con el
tipo del selector.
Cada sentencia, excepto la �ltima, deben ir seguidas del punto y coma.
Ejemplo:
Program Tecla;
{El siguiente programa lee un car�cter del teclado
y despliega un mensaje en pantalla si es letra o
n�mero o car�cter especial}
Uses Crt;
Var
caracter : char;
begin
Write('Escribe un caracter : ');
caracter:=ReadKey;WriteLn;
case caracter of
'0'..'9' : WriteLn('Es un n�mero');
'a'..'z','A'..'Z' : WriteLn('Es una letra')
else
WriteLn('Es un caracter especial')
end;
ReadKey
end.
|