cpp-operadores-logicos

Operadores lógicos en C++

  • 4 min

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:

OperadorNombreDescripción
&&ANDDevuelve true si ambos operandos son true
||ORDevuelve true si al menos uno de los operandos es true
!NOTNiega el valor

Si quieres aprender más consulta el Curso de Introducción a la Programación

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
Copied!

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
Copied!

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
Copied!

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
Copied!

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
Copied!

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
Copied!

Combinación de operadores lógicos

Es posible combinar varios operadores lógicos en una sola expresión para crear condiciones más complejas.

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
Copied!

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.

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))
Copied!

Para mejorar la claridad, se pueden usar paréntesis (no te importe hacerlo)

bool resultado = (a > b) || ((b < c) && (a == c)); // true
Copied!