Operadores logicos

Solo disponible en BuenasTareas
  • Páginas : 6 (1464 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de septiembre de 2010
Leer documento completo
Vista previa del texto
OPERADORES LÓGICOS
Los operadores lógicos devuelven un valor Booleano (verdadero / falso) en función de las expresiones que estos evalúen. Existen los siguientes operadores lógicos:


And (&&)
El operador && devuelve Verdadero cuando las dos expresiones que evalúa son verdaderas, de tal forma x && y devuelve verdadero solo cuando tanto X como Y son verdaderas. A continuación se especificauna tabla que especifica todas las situaciones:

Expresión 1 && Expresión 2

V && V = V
F && V = F
V && F = F
F && F = F

F = Falso
V= Verdadero

Or ( || )
El operador || es opuesto a && en tanto en cuanto a que este operador, situado entre dos expresiones, devuelve el valor booleano verdadero solo con que una de las expresiones que evalúa sea verdadera. A continuación, latabla de correspondencias:
Expresión 1 || Expresión 2

V || V = V
V || F = V
F || V = V
F || F = F


Not (!)
El operador ! devuelve el valor contrario de una expresión, de forma que si la expresión es verdadera, la aplicación de este operador sobre esa variable devolverá Falso, mientras que si la expresión original es falsa, la aplicación del operador ! devolverá verdadero.!V = F
!F = V
Operadores Lógicos de Cortocircuitos

Al manipular los operadores lógicos se puede entrar en un fenómeno de "cortocircuito". Esto significa que la expresión se evaluará únicamente hasta que se pueda determinar sin ambigüedad la certeza o falsedad de toda la expresión. Como resultado, podría ocurrir que no sea necesario evaluar todas las partes de la expresión lógica. He aquí unejemplo que muestra el funcionamiento de los cortocircuitos:

// Demuestra el comportamiento de los cortocircuitos con operadores lógicos.
class CortoCircuito {
static boolean pruebal (int val) {
System.out .println ("pruebal ( " + val + " ) " ) ;
System.out .println ("resultado: " + (val < 1) ) ;
return val < 1;
}
static boolean prueba2 (int val) {System.out .println ("prueba2 ( " + val + " ) " ) ;
System. out .println ("resultado: " + (val < 2) ) ;
return val < 2;
}
static boolean prueba3 (int val) {
System. out .println ("prueba3 ( " + val + ") " ) ;
System. out .println ("resultado: " + (val < 3) ) ;
return val < 3;
}
public static void main (String [] args) {
if(pruebal (0) && prueba2 (2) && prueba3 (2) )
{ System.out.println("La expresión es verdadera"); }
else { System.out.println("La expresión es falsa"); }
}
}
Cada test lleva a cabo una comparación con el argumento pasado y devuelve verdadero o falso.
También imprime información para mostrar lo que se está invocando. Lascomprobaciones se usanen la expresión:

if (pruebal (O) & & prueba2 (2) && prueba3 (2) )

Naturalmente uno podría pensar que se ejecutarían las tres pruebas, pero en la salida se muestra de otra forma:

pruebal (0)
resultado : true
prueba2 (2)
resultado: false
la expresión es falsa

La primera prueba produjo un resultado verdadero, de forma que la evaluación de la expresión continúa. Sinembargo, el segundo test produjo un resultado falso. Puesto que esto significa que toda la expresión va a ser falso ¿por qué continuar evaluando el resto de la expresión? Podría ser costoso. Ésa es precisamente la razón para realizar un cortocircuito; es posible lograr un incremento potencial de rendimiento si no es necesario evaluar todas las partes de la expresión lógica.

Operadores de bitLos operadores a nivel de bit permiten manipular bits individuales de la misma forma que si fueran tipos de datos primitivos íntegros. Los operadores de bit llevan a cabo álgebra lógica con los bits correspondientes de los dos argumentos, para producir el resultado.
Los operadores a nivel de bit provienen de la orientación a bajo nivel de C, para la manipulación directa del hardware y el...
tracking img