5.8 Operadores lógicos
Cada una de las instrucciones
if
,
if...else
,
while
,
do...while
y
for
requieren una condición para determi-
nar cómo continuar con el fl ujo de control de un programa. Hasta ahora sólo hemos estudiado las
condiciones
simples
, como
cuenta <= 10
,
numero != valorCentinela
y
total > 1000
. Las condiciones simples se expre-
san en términos de los operadores relacionales
>
,
<
,
>=
y
<=
, y los operadores de igualdad
==
y
!=
; cada expresión
evalúa sólo una condición. Para evaluar condiciones múltiples en el proceso de tomar una decisión, ejecutamos
estas pruebas en instrucciones separadas o en instrucciones
if
o
if...else
anidadas. En ocasiones, las instruc-
ciones de control requieren condiciones más complejas para determinar el fl ujo de control de un programa.
Java cuenta con los
operadores lógicos
para que usted pueda formar condiciones más complejas, al combi-
nar las condiciones simples. Los operadores lógicos son
&&
(AND condicional),
||
(OR condicional),
&
(AND
lógico booleano),
|
(OR inclusivo lógico booleano),
^
(OR exclusivo lógico booleano) y
!
(NOT lógico).
Operador AND (
&&
) condicional
Suponga que deseamos asegurar en cierto punto de una aplicación que dos condiciones sean
ambas verdaderas,
antes de elegir cierta ruta de ejecución. En este caso, podemos utilizar el operador
&&
(
AND condicional
) de
la siguiente manera:
if
( genero ==
FEMENINO
&& edad >=
65
)
++mujeresMayores;
Esta instrucción
if
contiene dos condiciones simples. La condición
genero == FEMENINO
compara la variable
genero
con la constante
FEMENINO
. Por ejemplo, esto podría evaluarse para determinar si una persona es mujer.
La condición
edad >= 65
podría evaluarse para determinar si una persona es un ciudadano mayor. La instrucción
if
considera la condición combinada
genero ==
FEMENINO
&& edad >=
65
la cual es verdadera si, y sólo si ambascondiciones simples son verdaderas. Si la condición combinada es verdade-
ra, el cuerpo de la instrucción
if
incrementa a
mujeresMayores
en
1
. Si una o ambas condiciones simples son
falsas, el programa omite el incremento. Algunos programadores consideran que la condición combinada anterior
es más legible si se agregan paréntesis redundantes, como por ejemplo:
( genero ==
FEMENINO
) && ( edad >=
65
)
La tabla de la fi gura 5.14 sintetiza el uso del operador
&&
. Esta tabla muestra las cuatro combinaciones posibles
de valores
false
y
true
para
expresión1 y expresión2. A dichas tablas se les conoce como
tablas de verdad
. Java
evalúa todas las expresiones que incluyen operadores relacionales, de igualdad o lógicos como
true
o
false
.
expresión1
expresión2
expresión1 && expresión2
false
false
false
false
true
false
true
false
false
true
true
true
Figura 5.14
| Tabla de verdad del operador
&&
(AND condicional).
Operador OR condicional (||)
Ahora suponga que deseamos asegurar que cualquiera
o ambas condiciones sean verdaderas antes de elegir cierta
ruta de ejecución. En este caso, utilizamos el operador
||
(
OR condicional
), como se muestra en el siguiente
segmento de un programa:
if
( ( promedioSemestre >=
90
) || ( examenFinal >=
90
) )
System.out.println
(
“La calificacion del estudiante es A”
);
5.8 Operadores
lógicos
185
05_MAQ_CAP_05.indd185
4/19/081:21:34AM