Datos, Operadores y Expresiones

4. Operadores

4.3. Operadores lógicos


Los operadores lógicos conforman expresiones lógicas y se utilizan para determinar cómo se presentan las relaciones entre las expresiones involucradas.
La siguiente tabla presenta los operadores lógicos y su sintaxis:

OperadorSignificadoSintaxis
&& AND o Y <expresión 1> && <expresión 2>
|| OR u O <expresión 1> || <expresión 2>
! NOT ! <expresión>

Operador && o AND

El operador "&&" equivale al "AND" o "Y"; devuelve "true" sólo si las dos expresiones evaluadas son "true" o distintas de cero, en caso contrario devuelve "false" o cero. Si la primera expresión evaluada es "false", la segunda no se evalúa.
Generalizando, con expresiones AND con más de dos expresiones, la primera expresión falsa interrumpe el proceso e impide que se continúe la evaluación del resto de las expresiones. Esto es lo que se conoce como "cortocircuito", y es muy importante, como veremos posteriormente.
El operador && se usa según la siguiente tabla de verdad, donde se representa “true” con 1 y “false” con 0.

Expresión 1Expresión 2<expresión 1> && <expresión 2>
true 1 true 1 true 1
true 1 false 0 false 0
false 0 true 1 false 0
false 0 false 0 false 0

Operador || u  OR

El operador "||" equivale al "OR" u "O inclusivo"; devuelve "true" si cualquiera de las expresiones evaluadas es "true" o distinta de cero, en caso contrario devuelve "false" o cero. Si la primera expresión evaluada es "true", la segunda no se evalúa.
El operador || se usa según la siguiente tabla de verdad, donde se representa  “true” con 1 y “false” con 0.

Expresión 1Expresión 2<expresión 1> || <expresión 2>
false 0 true 1 true 1
false 0 false 0 false 0

Operador ! o NOT

El operador "!" es equivalente al "NOT", o "NO", y devuelve "true" sólo si la expresión evaluada es "false" o cero; en caso contrario devuelve "false".
La expresión "!E" es equivalente a (0 == E).
El operador ! se usa según la siguiente tabla de verdad, donde se representa “true” con 1 y “false” con 0.

Expresión 1! Expresión 1
true 1 false 0
false 0 true 1

Se pide al alumno analizar el siguiente código y ver si puede anticipar la salida: