Prioridad de los operadores aritméticos, relacionales, lógicos y de cadena en Pseudocódigo
En una expresión puede aparecer uno o más operadores aritméticos, relacionales, lógicos y/o de cadena.
EJEMPLO Algunos ejemplos son:
5 * 4 > 5 + 4 | Falso & "ab" < "aa"
( 5 * 4 > 5 + 4 | Falso ) & 'f' < 'b'
! Verdadero < Falso
! ( Verdadero < Falso )
Para poder evaluar correctamente las expresiones anteriores, es necesario seguir un criterio de prioridad de operadores.
En nuestro pseudocódigo, la prioridad entre los operadores aritméticos, relacionales, lógicos y de cadena es:
+ - ! Signo más, signo menos y negación
^ Potencia
* / % Multiplicación, división y módulo
+ - Suma y resta
+ Concatenación
< <= > >= Menor que, menor o igual que, mayor que, mayor o igual que
= <> Igual que, distinto que
& Conjunción
| Disyunción
Por tanto, los valores que proporcionan las expresiones del ejemplo son:
Verdadero (actúan en orden los operadores: (*), suma (+), (>), (<), (&) y (|))
Falso (actúan en orden los operadores: (*), suma (+), (>), (|), (<) y (&))
Falso (actúan en orden los operadores: (!) y (<))
Verdadero (actúan en orden los operadores: (<) y (!))
Obsérvese que, los paréntesis "()" son capaces de cambiar el orden de actuación de los operadores de cualquier expresión.
Además, los paréntesis se pueden anidar, es decir, se pueden escribir unos dentro de otros, priorizándose del más interno al más externo y, después, de izquierda a derecha.
EJEMPLO De la expresión:
42 % ( ( 4 - 5 ) * ( 8 + 2 ) )
Se obtiene el valor:
2 (actúan en orden los operadores: (-), (+), (*) y (%))
EJEMPLO Sin embargo, de la expresión:
42 % ( 4 - 5 * 8 + 2 )
Se obtiene el valor:
8 (actúan en orden los operadores: (*), (-), (+) y (%))