Operadores lógicos AND OR NOT XOR en C#

Resumen

Los operadores lógicos en C# te permiten comparar expresiones booleanas para construir reglas de decisión en tu código, desde validar contraseñas hasta diseñar flujos de seguridad con autenticación múltiple. Si programas en .NET 6 y quieres entender cómo combinar condiciones, aquí encontrarás cómo funcionan AND, OR, NOT y XOR con ejemplos prácticos.

¿Qué son los operadores lógicos en C#?

Son símbolos que comparan valores booleanos (true o false) y devuelven otro booleano. A diferencia de los operadores aritméticos, no suman ni restan: evalúan condiciones. En C# los más usados son cuatro y cada uno responde a una pregunta distinta sobre tus variables [01:05].

¿Para qué sirven los operadores lógicos? Sirven para combinar condiciones y decidir si un bloque de código se ejecuta. Por ejemplo, validar que una usuaria ingrese contraseña y huella digital antes de acceder a su cuenta.

Antes de comparar, necesitas declarar tus variables booleanas. Puedes hacerlo de forma explícita con bool valor1 = true; o de forma implícita agrupándolas entre paréntesis con var, siempre que sean del mismo tipo. C# detecta automáticamente que trabajas con booleanos por los valores que asignas [09:30].

¿Cómo funcionan AND y OR en C#?

El operador AND se escribe con && y exige que todas las condiciones sean verdaderas para devolver true. Si alguna falla, el resultado es false [02:45].

Piensa en una app bancaria de máxima seguridad: para entrar necesitas contraseña, código 2FA y huella digital. Si una sola falla, el acceso se niega. Eso es AND en acción [04:10].

El operador OR se escribe con || (las dos barras verticales en la esquina superior izquierda del teclado) y devuelve true si al menos una condición se cumple [05:20].

csharp bool valor1 = true; bool valor2 = false; bool valor3 = false;

bool resultadoAnd = valor1 && valor2 && valor3; // false bool resultadoOr = valor1 || valor2 || valor3; // true

En la analogía de seguridad, OR equivale a permitir acceso con contraseña o con 2FA o con huella: cualquiera abre la puerta.

¿Puedo combinar AND y OR en una misma expresión?

Sí, y aquí entra la precedencia de operaciones. Usa paréntesis para indicar qué se evalúa primero, igual que en álgebra [07:15].

csharp bool combinado = (valor1 && valor2) || valor3;

Esto se lee así: si valor1 y valor2 son ambos verdaderos, o si valor3 es verdadero por sí solo, el resultado es true. Es como decir: "entra con contraseña más 2FA, o directamente con huella digital".

¿Para qué sirven NOT y XOR?

El operador NOT se escribe con ! y simplemente invierte el valor. Si una variable es true, !variable la convierte en false, y viceversa [10:45].

csharp bool valor1 = true; bool resultNot = !valor1; // false

Es útil cuando quieres verificar que algo no se cumple, como "si el usuario no está autenticado, redirigir al login".

¿Qué hace el operador XOR en C#? Compara dos valores y devuelve true solo si son diferentes. Si ambos son iguales (los dos true o los dos false), devuelve false. Se escribe con el símbolo ^.

Mientras AND pregunta "¿son ambos verdaderos?", XOR pregunta "¿son distintos entre sí?" [12:00].

csharp bool resultXor = valor1 ^ valor2;

¿Por qué XOR con tres variables da resultados inesperados?

Cuando encadenas valor1 ^ valor2 ^ valor3, C# evalúa de izquierda a derecha. Primero compara valor1 ^ valor2 y obtiene un booleano intermedio; luego compara ese resultado con valor3 [13:20].

Por eso, si valor1 y valor2 son ambos true, el primer XOR da false, y al compararlo con valor3 = false, el resultado final es false. No son diferentes entre sí en la segunda comparación. Usar paréntesis te ayuda a visualizar el orden:

csharp bool resultXor = (valor1 ^ valor2) ^ valor3;

¿Cómo aplicar operadores lógicos en proyectos reales?

La analogía de la caja fuerte funciona perfecto: imagina cuántas llaves necesita girar tu usuario y en qué combinaciones. Esa lógica se traduce directamente a &&, ||, ! y ^.

  • Usa AND cuando todas las condiciones deban cumplirse: validaciones estrictas, permisos múltiples.
  • Usa OR cuando baste con que una se cumpla: rutas alternativas de autenticación.
  • Usa NOT para invertir estados: comprobar ausencia de errores o de sesión.
  • Usa XOR para detectar diferencias: alternar estados, validar exclusividad mutua.

Para declarar varias booleanas en una sola línea, recuerda la sintaxis con paréntesis y var:

csharp var (valor1, valor2, valor3) = (true, false, true);

C# infiere el tipo automáticamente porque los valores asignados son booleanos. Te ahorra repetir bool tres veces y deja el código más limpio.

Si algo no quedó claro, déjalo en los comentarios y entre la comunidad lo resolvemos.