Règles de priorité pour les opérateurs
Pascal détermine l'ordre dans lequel les expressions sont évaluées selon certaines règles de priorité. Les opérateurs unaires (ceux qui n'ont qu'une seule opérande) sont évalués en premier. Viennent ensuite les opérateurs dits multiplicateurs, puis les opérateurs d'addition et enfin les opérateurs relationnels ou de comparaison. Les opérateurs ayant la même priorité sont évalués de gauche à droite. Les expressions entre parenthèses sont d'abord évaluées avant que leur résultat ne soit utilisé plus avant.
Ces règles ne sont pas inconnues - après tout, nous avons déjà appris à l'école que le point à ligne est important.
Pour résumer, voici un tableau de tous les opérateurs, classés selon les niveaux de priorité:
Opérateur | Priorité | Art |
---|---|---|
@, not, +, - | Unaire | |
*, /, div, mod, and, shl, shr | Multipliant | |
+, -, or, xor | Additionnant | |
=, <>, <, >, <=, >=, in | Comparant |
Les opérateurs + et - apparaissent deux fois dans le tableau, en tant qu'opérateurs unaire et binaire.
La plupart des programmeurs Pascal n'ont aucun problème ici, seul le fait que les opérateurs AND et OU sont prioritaires sur les opérateurs de comparaison conduit parfois à des erreurs. Dans une expression comme:
vous ne pouvez pas vous passer de parenthèses.(i > 0) and (a[i] <> k)