Operadores lógicos

Operadores lógicos

Los operadores lógicos son generalmente empleados con valores lógicos (booleanos); estos operadores devuelven un valor booleano. Sin embargo, los operadores && y || realmente devuelven el valor de uno de sus operandos, por esto si se emplean con valores no booleanos, podrían devolver un valor no booleano. Los operadores lógicos se describen en la siguiente tabla.

Operador Uso Descripción
&& expr1 && expr2 (AND lógico) Devuelve expr1 si la expresión puede convertirse a falso; de otro modo, devuelve expr2. Cuando se emplea con valores booleanos, && devuelve true cuando ambos operandos son verdaderos; si no, devuelve false.
|| expr1 || expr2 (OR lógico) Devuelve expr1 si puede convertirse a verdadero; de otro modo devuelve expr2. Cuando se emplea con valores booleanos, el operador || devuelve true si alguno de los operandos es verdadero; si ambos operandos son falsos devuelve false.
! !expr (NOT lógico) Devuelve falso si su único operando puede convertirse a verdadero; de otro modo, devuelve verdadero.

Tabla 3.7: Operadores lógicos

Ejemplos de expresiones que pueden convertirse a falso son las que evalúan a null, 0, la cadena vacia (""), o undefined (no definido).

El siguiente código muestra ejemplos del uso del operador && (AND lógico).

a1=true && true       // t && t devuelve true
a2=true && false      // t && f devuelve false
a3=false && true      // f && t devuelve false
a4=false && (3 == 4)  // f && f devuelve false
a5="Gato" && "Perro"     // t && t devuelve Perro
a6=false && "Gato"     // f && t devuelve false
a7="Gato" && false     // t && f devuelve false

El siguiente código muestra ejemplos del uso del operador || (OR lógico).

o1=true || true       // t || t devuelve true
o2=false || true      // f || t devuelve true
o3=true || false      // t || f devuelve true
o4=false || (3 == 4)  // f || f devuelve false
o5="Gato" || "Perro"     // t || t devuelve Gato
o6=false || "Gato"     // f || t devuelve Gato
o7="Gato" || false     // t || f devuelve Gato

El siguiente código muestra ejemplos del uso del operador ! (NOT lógico).

n1=!true              // !t devuelve false
n2=!false             // !f devuelve true
n3=!"Gato"             // !t devuelve false

Evaluación cortocircuiteada

Como las expresiones lógicas son evaluadas de izquierda a derecha, deben ser probadas por posibles evaluaciones con cortocircuito usando las siguientes reglas:

  • false && LoQueSea está cortocircuiteada evaluandose a false.
  • true || LoQueSea está cortocircuiteada evaluandose a true.

Las reglas de la lógica garantizan que estas evaluaciones siempre sean correctas. Nótese que la parte LoQueSea de las expresiones dadas no se llega a evaluar, por lo que como no toman partido no tienen nigún efecto secundario.

Categorías

Links interwikis

Etiquetas y colaboradores del documento

Colaboradores de esta página: DSN XP, Lopez, Jorolo, Sheppy, Mgjbot
Última actualización por: DSN XP,