CodeGym /Cursos /C# SELF /Prioridad de operadores y paréntesis en condiciones

Prioridad de operadores y paréntesis en condiciones

C# SELF
Nivel 3, Lección 4
Disponible

1. Introducción

Vamos a empezar con una analogía de la vida diaria. Imagina una receta:

Mezcla la harina, los huevos y el azúcar bate añade la mantequilla bate otra vez.

¿Suena raro? Ahora imagina que entre las palabras "bate" y "añade" hay una coma o paréntesis. El orden de las acciones se entiende mucho mejor.

En programación pasa algo parecido cuando escribes una expresión compleja:

bool result = a > 0 && b < 10 || c == 3;

¿Cuál es el orden? ¿Qué se calcula primero: a > 0 && b < 10, luego || c == 3? ¿O al revés? Si no hay un orden claro de evaluación, el ordenador puede "mezclar los ingredientes" y el resultado será inesperado.

2. Prioridad de operadores en C#

C# (igual que la mayoría de los lenguajes de programación) usa una tabla de prioridades de operadores.
Los operadores con mayor prioridad se ejecutan antes que los de menor prioridad.

Mira la parte más importante de esta tabla (para expresiones condicionales):

Operador Descripción Prioridad
() Paréntesis la más alta
! Lógico "NO" alta
==, != Igual / no igual media
<, >, <=, >= Comparaciones media
&& Lógico "Y" más baja
|| Lógico "O" aún más baja

(También existen operadores aritméticos — tienen prioridad más alta que los lógicos.)

La regla principal

El operador "Y" (&&) tiene más prioridad que "O" (||),
o sea, primero se evalúa el "Y", luego el "O".

Diagrama de flujo de evaluación de prioridad de condiciones

Primero se evalúa a > 0 && b < 10, luego el resultado se compara con c == 3 usando ||

En la práctica: a > 0 && b < 10 || c == 3 — primero se evalúa a > 0 && b < 10, luego el resultado se compara con c == 3 usando ||.

3. Dirección de los operadores: de izquierda a derecha y viceversa

Además de la prioridad, hay otra palabra: asociatividad.
Es la regla de en qué dirección se evalúan los operadores si están "juntos" y tienen la misma prioridad.

Ejemplo:

bool a = true, b = false, c = true;
bool result = a && b && c;

Pregunta: ¿cómo se calcula?
Respuesta: la asociatividad de && es de izquierda a derecha.
O sea, primero a && b, luego el resultado con c.

Aplicado a condiciones:

Operador Asociatividad
&&, || de izquierda a derecha
! de derecha a izquierda

4. Los paréntesis — tu mejor amigo en condiciones complejas

Aquí empieza la magia (y el salvavidas). Cuando escribes una expresión, los paréntesis cambian la prioridad y hacen tu código más claro y seguro.

Ejemplo 1 (sin paréntesis):

// Queremos: "Si el usuario es adulto y ciudadano, o si tiene pase especial"
bool isAdult = age >= 18;
bool isCitizen = country == "Bielorrusia";
bool hasPermit = hasSpecialPass == true;

if (isAdult && isCitizen || hasPermit)
{
    Console.WriteLine("¡Acceso permitido!");
}

Cómo lo evalúa C#:
Primero evalúa isAdult && isCitizen, luego el resultado lo compara con || y hasPermit.

  • Supón que isAdult = true, isCitizen = false, hasPermit = true
  • isAdult && isCitizen → true && false → false
  • false || true → true

O sea, si la persona tiene pase especial, igual entra.
Y si no tiene pase, pero es adulto y ciudadano — también entra.

Ejemplo 2 (con paréntesis):

if (isAdult && (isCitizen || hasPermit))
{
    Console.WriteLine("¡Acceso permitido!");
}

Ahora el programa primero comprueba:
isCitizen || hasPermit, y luego ese resultado junto con isAdult.

O sea, tienes que ser adulto y (o ciudadano, o tener pase especial).
¡Una pequeña diferencia en los paréntesis — una gran diferencia en la lógica!

2
Tarea
C# SELF, nivel 3, lección 4
Bloqueada
Condición simple
Condición simple
2
Tarea
C# SELF, nivel 3, lección 4
Bloqueada
Comprobación de una expresión lógica compleja
Comprobación de una expresión lógica compleja
Comentarios (1)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
vcuaya Nivel 24, Puebla, Mexico
9 febrero 2026
Casi en todos los ejercicios hay problemas de validación con los acentos, escribo los acentos manualmente y no los reconoce como válidos si los copio ya funciona. Y en ocasiones al contrario si copio los acentos no funciona si los meto manualmente funciona: El programa debe mostrar: Permitido a la competición o No permitido a la competición