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