Los operadores lógicos son símbolos especiales que nos permiten combinar condiciones y realizar operaciones basadas en el resultado de esas condiciones.
Los operadores lógicos más comunes en C++ son:
Operador | Nombre | Descripción |
---|---|---|
&& | AND | Devuelve true si ambos operandos son true |
|| | OR | Devuelve true si al menos uno de los operandos es true |
! | NOT | Niega el valor |
Si quieres aprender más sobre Operadores Lógicos
consulta el Curso de Introducción a la Programación leer más
Listado de operadores lógicos
AND lógico (&&)
El operador lógico AND nos permite evaluar dos condiciones y devuelve true
si ambas condiciones son verdaderas, o false
en caso contrario. Por ejemplo:
bool condicion1 = true;
bool condicion2 = false;
bool resultado = condicion1 && condicion2; // resultado será igual a false
OR lógico (||)
El operador lógico OR nos permite evaluar dos condiciones y devuelve true
si al menos una de las condiciones es verdadera, o false
en caso contrario. Por ejemplo:
bool condicion1 = true;
bool condicion2 = false;
bool resultado = condicion1 || condicion2; // resultado será igual a true
NOT lógico (!)
El operador lógico NOT nos permite invertir el valor de una condición. Si la condición es true
, devuelve false
, y si la condición es false
, devuelve true
. Por ejemplo:
bool condicion = true;
bool resultado = !condicion; // resultado será igual a false
Ejemplos de uso
Combinación con &&
El operador &&
(AND lógico) se utiliza para combinar dos expresiones booleanas. La expresión completa se evalúa como true
solo si ambas subexpresiones son true
.
int edad = 25;
bool tieneLicencia = true;
bool puedeConducir = (edad >= 18) && tieneLicencia; // true
Combinación con ||
El operador ||
(OR lógico) se utiliza para combinar dos expresiones booleanas. La expresión completa se evalúa como true
si al menos una de las subexpresiones es true
.
bool estaLloviendo = false;
bool esFrio = true;
bool quiereQuedarseEnCasa = estaLloviendo || esFrio; // true
Negación con !
El operador !
(NOT lógico) se utiliza para negar una expresión booleana. La expresión completa se evalúa como true
si la subexpresión es false
, y viceversa.
bool esDia = true;
bool esNoche = !esDia; // false
Combinación de operadores lógicos
Es posible combinar varios operadores lógicos en una sola expresión para crear condiciones más complejas.
Por ejemplo:
int numero = 15;
bool esMultiploDe3 = (numero % 3 == 0);
bool esMultiploDe5 = (numero % 5 == 0);
bool esMultiploDe3_o_5 = esMultiploDe3 || esMultiploDe5; // true, ya que 15 es múltiplo de 3 o 5
bool esMultiploDe3_y_5 = esMultiploDe3 && esMultiploDe5; // true, ya que 15 es múltiplo de 3 y 5 simultáneamente
bool noEsMultiploDe3 = !esMultiploDe3; // false
Precedencia de operadores lógicos
Cuando se combinan múltiples operadores lógicos en una expresión, es importante entender su precedencia para evaluar correctamente la expresión.
La precedencia de operadores lógicos en C++ sigue este orden:
!
(NOT)&&
(AND)||
(OR)
Por lo tanto, en una expresión con &&
y ||
, &&
se evalúa antes que ||
. Sin embargo, no conviene abusar de esto a la hora de escribir nuestro código.
Por ejemplo:
int a = 5;
int b = 10;
int c = 15;
bool resultado = (a > b) || (b < c) && (a == c); // true
// Evaluado como: (a > b) || ((b < c) && (a == c))
Para mejorar la claridad, se pueden usar paréntesis (no te importe hacerlo)
bool resultado = (a > b) || ((b < c) && (a == c)); // true