2.2. Variables booleanas
Una variable "Boolean" (llamadas así en honor al matemático George Boole) es una variable lógica, que puede valer TRUE (verdadero) oFALSE (falso), y se pueden usar para hacer que las condiciones resulten más legibles:
(* IF5.PAS, "if" y booleanos *) (* Parte de CUPAS5, por Nacho Cabanes *) program if5; var numero: integer; esPositivo: boolean; begin writeLn('Escriba un numero'); readLn(numero); esPositivo := numero>0; if esPositivo then writeLn('El numero es positivo'); end. (* Ejemplo de ejecucion: Escriba un numero 2 El numero es positivo *)
2.3. Muchos posibles valores (case)
Cuando queremos comprobar entre varios posibles valores, podemos hacerlo con muchos "if" seguidos, pero puede resultar pesado y hacer que el programa sea poco legible. Hay una alternativa que resulta mucho más cómoda en esas ocasiones: la orden case. Su sintaxis es
case expresion of caso1: sentencia1; caso2: sentencia2; ... casoN: sentenciaN; end;
o bien, si queremos indicar también lo que se debe hacer si no coincide con ninguno de los valores que hemos enumerado, añadimos la cláusula opcional else:
case expresion of caso1: sentencia1; caso2: sentencia2; ... casoN: sentenciaN; else otraSentencia;</tt> end;
(Nota: Esta es la sintaxis empleada por Turbo Pascal y Free Pascal. En Pascal estándar, esta construcción se empleaba con otherwise en lugar de "else" para expresar "en caso contrario".
Veamos un ejemplo:
(* CASE1.PAS, Condiciones múltiples con "case" *) (* Parte de CUPAS5, por Nacho Cabanes *) program case1; var letra: char; begin WriteLn('Escriba un simbolo'); ReadLn(letra); case letra of ' ': WriteLn('Un espacio'); 'A'..'Z', 'a'..'z': WriteLn('Una letra'); '0'..'9': WriteLn('Un digito'); '+', '-', '*', '/': WriteLn('Un operador'); else { otherwise en SURPAS y otros compiladores } WriteLn('No es espacio, ni letra, ni digito, ni operador'); end; end. (* Ejemplo de ejecucion: Escriba un simbolo a Una letra *)
Una precaución: la "expresión" debe pertenecer a un tipo de datos con un número finito de elementos, como "integer" o "char", pero no "real".
Y como se ve en el ejemplo, los "casos" posibles pueden ser valores únicos, varios valores separados por comas, o un rango de valores separados por .. (como los puntos suspensivos, pero sólo dos).
(Como siempre, puedes ver la versión más actualizada en la página oficial del curso)
No hay comentarios:
Publicar un comentario