Tipo boolean
El tipo de dato primitivo boolean admite dos estados: true y false. En general, todas las cantidades numéricas iguales a cero se consideran false y en caso contrario true; por ello, el valor por defecto es false si no se inicializa con ningún valor.
Las constantes true y false, las variables declaradas como datos primitivos a partir de boolean o expresiones de comparación que pueden regresar valores de falso y verdadero se consideran «expresiones booleanas» y nos sirven para indicar estados dicotómicos y para establecer decisiones sobre alternativas de flujo de información que pueden tomar los programas.
Tomando en cuenta que los programas de computadora son secuenciales y estructurados; sabemos que las operaciones se ejecutan desde un inicio hasta culminar en algún punto del programa. Por ello, se seguirá la convención de que las operaciones en dónde el programa avanza, las líneas del flujo del programa irán hacia abajo; pero en el caso de requerir un cambio de rumbo, la línea para avanzar o brincar sentencias se irá por el lado derecho, mientras que para regresar a un punto previo será por el lado izquierdo.
Necesita “brincar” instrucciones hacia adelante
Necesita regresar a un punto previo del programa
Gracias a esta convención, es posible encontrar estructuras de control en los lenguajes de programación. Java es un lenguaje orientado a objetos, pero tiene una base en lenguajes estructurados (condicionales, cíclicas y llamadas a procedimientos). Por ello, se preferirá un diagrama de flujo similar al siguiente:
Observa que hay cuatro preguntas que la línea roja sale hacia la derecha (flujo que avanza) y una en la que sale a la izquierda (flujo que regresa).
Con base en el diagrama anterior, contesta las siguientes preguntas:
Condiciones o expresiones booleanas
Recordando los operadores lógicos y relacionales, estos nos permiten obtener expresiones cuya respuesta es falso o verdadero.
Operadores lógicos
Negación | ! | not |
---|---|---|
Paréntesis | ( ) | permite agrupar |
Operadores lógicos | && | and lógico o booleano |
|| | or lógico o booleano | |
^ | xor lógico o booleano |
Operadores relacionales
Comparación | == | igual |
---|---|---|
!< | distinto | |
< | Menor que | |
<= | Menor o igual que | |
> | mayor que | |
>= | Mayor o igual que |
Completa las sentencias con el operador lógico o relacional adecuado para cada problema planteado. Observa el ejemplo:
La base y la altura de un triángulo deben ser números positivos.
(base > 0) && (altura > 0)
Las cantidades mayores a cero son positivas. El operador && representa al AND para expresiones booleanas.
Problema 1
La edad de una persona no puede superar los 120 años.
Problema 2
Un adulto (en México) debe tener al menos 18 años.
Problema 3
Puede ocurrir una división entre cero, porque genera una “indefinición” o una “indeterminación”; normalmente en los lenguajes de programación provocan que un programa finaliza de manera intempestiva.
Problema 4
Los días de la semana son siete y están ordenados, (DOMINGO, LUNES, MARTES, … SÁBADO). Para determinar si un día se encuentra entre los días laborables (de lunes a viernes):
Sentencias nulas, simples y compuestas
Recuerda el uso de distintos tipos de sentencias, ya que cuando se indica la palabra “sentencia” dentro de una estructura, podría tratarse de una sentencia de ejecución nula, simple o compuesta:
La sentencia nula no ejecuta ninguna acción y no es neceario escribir nada para indicar que se ejecute algo.
Es común encontrarla en bloque de sentencias que inician y cierran sin hacer nada { }, así como colocarla de manera equivocada en medio de una estructura de control como if(), else, for() o while().
- Asignación.
- Llamada a métodos.
- Otras estructuras de control (if-else, switch, for, while, do-while).
También se conocen como «bloques de sentencias» o simplemente «bloque» su sintaxis se describe en el siguiente diagrama sintáctico, iniciando con una llave de apertura y finalizando con una llave de cierre y no se terminan con punto y coma.
De acuerdo con la definición, se pueden tener sentencias como:
{} (sentencia múltiple con sentencia nula en el bloque).
{ sentencia simple; }
{
sentencia simple;
sentencia simple;
// …
sentencia simple;
}