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 falseOR 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 trueNOT 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 falseEjemplos 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; // trueCombinació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; // trueNegació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; // falseCombinació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
bool esMultiploDe3_y_5 = esMultiploDe3 && esMultiploDe5; // true, ya que 15 es múltiplo de 3 y 5 simultáneamente
bool noEsMultiploDe3 = !esMultiploDe3; // falsePrecedencia 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. No os importa usar paréntesis si mejora la legibilidad.
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, a veces conviene poner paréntesis aunque no sean necesarios, si eso mejora la legibilidad.
bool resultado = (a > b) || ((b < c) && (a == c)); // true