4.3 Prioridad de los operadores

La prioridad es importante
Imagen de creación propia bajo licencia CC

Cuando se realizan expresiones, en cualquier lenguaje, incluyendo pseudocódigo, es habitual mezclar en ellas diferentes operadores, incluso de distintos tipos (aritméticos, relacionales, lógicos o de cadena).

Ya viste que en el caso de los numéricos las operaciones entre paréntesis tienen prioridad. Además, ya sabes que se pueden anidar distintas secuencias de paréntesis como has apreciado en ejemplos anteriores. En esos casos se prioriza el más interno al más externo y después de izquierda a derecha. Por tanto en ((3*5)+20)*4 lo primero es multiplicar 3 por 5, despues al resultado que es 15 sumar 20, y este resultado que es 35 multiplicarlo por 4. Además el orden de operación alterado por el uso de paréntesis altera lógicamente el resultado final (lo vemos a continuación con un ejemplo).

Cuando se utilizan operadores mezclados, la prioridad es la siguiente:

  1. Paréntesis (si hay varias parejas de paréntesis, de los más internos a los más externos).
  2. Aritméticos (en el mismo orden que en matemáticas): ^, *, /, +, -
  3. Concatenación.
  4. Relacionales.
  5. Lógicos.

Veamos algunos ejemplos:

EXPRESIÓN RESULTADO
3*5<8  O  4+6>7 El resultado de esta expresión es verdadero, porque si primero ejecutamos los operadores aritméticos, la expresión quedaría como 15<8 o 10>7. Ya que para el operador lógico O si cualquiera de las comparaciones es verdadero el resultado es verdadero se cumple pues 15 no es menor que 8 pero 10 si es mayor que 7. Primero han intervenido los aritméticos, después los relacionales y por último el lógico.
(2*12>9+8)  Y  20<18 El resultado será falso, pues sólo se cumple que 24 es mayor que 17 pero no que 20 sea menor que 18. Para el operador lógico Y, sólo se obtiene resultado verdadero si todas las condiciones se cumplen.
(50 MOD 4)*3 El resultado es 6, pues el dividendo es 50, el divisor 4, el cociente 12 y el resto 2. Al multiplicar 2 por 3 nos da 6.
50 MOD (4*3) El resultado es 2, pues el dividendo es 50, el divisor 12, el cociente 4 y el resto 2.

Se puede corroborar que la alteración del orden de ejecución impuesto por los paréntesis, colocados en distinto lugar, da resultados diferentes como habíamos indicado anteriormente.