Los operadores lógicos trabajan con tipos de datos booleanos, realizan las operaciones lógicas de conjunción ( and ), disyunción ( or ), negación ( not ) y la disyunción exclusiva ( xor ).
Operadores lógicos o booleanos
A continuación un ejemplo:
Al usar más de un operador lógico, el programa siempre evaluará las operaciones, de tal modo que cuando se conoce el primer resultado el resto de las operaciones ya no serán evaluadas, a esto se le conoce como: short-cut boolean evaluation, que en español sería "evaluación booleana de atajo" o "evaluación booleana en corto circuito".
Por ejemplo, en la siguiente operación booleana:
a:=(x>0) and (y>1)
Si x es negativo, entonces (x>0) es falso (false), y cuando este es falso toda la operación resultará falso (false), sin importar si el valor de (y>1) sea verdadero o falso. Es decir si se sabe que (x>0) es falso, no habrá necesidad de evaluar (y>1). Algo similar ocurre con or, si (x>0) es verdadero entonces no es necesario evaluar (y>1) y toda la operación resultará verdadero.
Ahora veamos el siguiente programa de ejemplo:
Si ingresamos un 0 para n, aparentemente el programa haría una división por cero generando un error, pero esto no sucede ya que (n>0) será falso y no se evaluará el resto de la operación, evitando de esa manera la división con cero. Pero si se cambian las operaciones del siguiente modo: ((m div n)>4) and (n>0), entonces el error si se producirá. La evaluación booleana en atajo o corto circuito, es útil sólo cuando se presentan situaciones en la que el resto de operaciones no están bien definidas.