La priorité des opérateurs détermine l'ordre qui leur est appliqué lors de l'évaluation d'une expression.
Toutefois, il est possible d'ignorer la priorité des opérateurs en utilisant des parenthèses.
Lorsque des expressions sont composées d'opérateurs de différentes catégories, les opérateurs arithmétiques sont évalués en premier, suivi de l'opérateur de concaténation, puis les opérateurs de comparaison et enfin les opérateurs logiques.
Les opérateurs arithmétiques sont évalués dans l'ordre de priorité décrit par le tableau suivant :
Les opérateurs arithmétiques | ||
---|---|---|
1 | Négation | - |
2 | Mise à la puissance | ^ |
3 | Multiplication et division | * / |
4 | Division entière | \ |
5 | Modulo | Mod |
6 | Addition et soustraction | + - |
L'opérateur de concaténation est évalué avant les opérateurs de comparaisons.
L'opérateur de concaténation | |
---|---|
Concaténation de chaînes | & |
Les opérateurs de comparaison possèdent tous une priorité identique.
Cependant, les opérateurs les plus à gauche dans une expression, détiennent une priorité plus élevé.
Les opérateurs de comparaison | ||
---|---|---|
1 | Égalité | = |
1 | Inégalité | <> |
1 | Inférieur à | < |
1 | Supérieur à | > |
1 | Inférieur à ou égal à | <= |
1 | Supérieur à ou égal à | >= |
1 | Variable de référence | Is |
Les opérateurs logiques sont évalués dans l'ordre de priorité décrit par le tableau suivant :
Les opérateurs logiques | ||
---|---|---|
1 | Non | Not |
2 | Et | And |
3 | Ou | Or |
4 | Ou exclusif | Xor |
5 | Equivalence | Eqv |
6 | Implication | Imp |
7 | & |
Dans le cas ci-dessous, une première évaluation accomplit le calcul 10 + x puis, une seconde effectue la division entre y et 10 + x et enfin la dernière affecte à x le résultat des deux premières évaluations.
x = y / 10 + x
Dans ce second exemple, la multiplication 2 * x et la division y / 4 sont calculés au préalable, ensuite la comparaison <= est exécuteée afin d'évaluer z par rapport à 2 * x ou (Or) y / 4.
z <= 2 * x Or y / 4