Operadores lógicos

 Los operadores lógicos en C++ se utilizan para combinar dos o más expresiones booleanas en una sola expresión booleana más compleja. Estos operadores devuelven un valor booleano (true o false) que indica el resultado de la combinación de las expresiones.

Operadores lógicos:

  • Y lógico (&&): Se utiliza para combinar dos expresiones booleanas. El resultado es true solo si ambas expresiones son true.
  • O lógico (||): Se utiliza para combinar dos expresiones booleanas. El resultado es true si al menos una de las expresiones es true.
  • No lógico (!): Se utiliza para negar una expresión booleana. El resultado es true si la expresión original es false, y false si la expresión original es true.

Ejemplo de uso:

C++
bool esMayorDeEdad = edad >= 18;
bool tieneID = true;

bool puedeEntrar = esMayorDeEdad && tieneID; // puedeEntrar = true

bool esEstudiante = esEstudiante || tieneBeca; // esEstudiante = true (o true o false)

bool noEsVerdad = !esVerdadero; // noEsVerdad = true (si esVerdadero es false)

Precedencia de operadores:

En C++, la precedencia de los operadores lógicos es la siguiente, de mayor a menor precedencia:

  1. Negación (!)
  2. And lógico (&&)
  3. Or lógico (||)

Esto significa que las operaciones de negación se evalúan antes que las operaciones and y or, y las operaciones and se evalúan antes que las operaciones or.

Asociatividad:

Los operadores lógicos (&& y ||) son asociativos de izquierda a derecha. Esto significa que las operaciones se evalúan de izquierda a derecha.

Ejemplo:

En la siguiente expresión:

C++
a > 0 && b < 10 || c == 5

Se evaluará primero la negación (!), luego las conjunciones (&&) y finalmente las disyunciones (||), siguiendo este orden:

  1. a > 0
  2. b < 10
  3. a > 0 && b < 10
  4. c == 5
  5. a > 0 && b < 10 || c == 5

Paréntesis:

Si se necesita cambiar el orden de evaluación, se pueden utilizar paréntesis. Los paréntesis siempre tienen la máxima precedencia, por lo que las operaciones dentro de ellos se evaluarán primero.

Ejemplo:

En la siguiente expresión:

C++
(a > 0 && b < 10) || c == 5

Se evaluará primero la expresión entre paréntesis:

  1. a > 0 && b < 10
  2. (a > 0 && b < 10) || c == 5

Los operadores lógicos tienen una precedencia menor que los operadores relacionales y aritméticos. Esto significa que las operaciones de comparación y aritmética se evalúan antes que las operaciones lógicas. Si se necesita cambiar el orden de evaluación, se pueden utilizar paréntesis.


Comentarios

Entradas más populares de este blog

Generación de números aleatorios

Paso de parámetros en funciones

STL de C++