next up previous contents index
suivant: Booléens et expressions logiques monter: main précédent: La fonction main   Table des matières   Index


Opérateurs et expressions arithmétiques

Les expressions arithmétiques sont formées à partir des variables et des constantes à l'aide des opérateurs arithmétiques. Ceux-ci sont +, -, *, / et % (modulo, définie seulement pour les entiers : 5%2 a pour valeur 1).

L'analyse syntaxique d'une expression est déterminée par des règles de précédence, dont on ne peut s'affranchir (et donc les ignorer) que si les expressions sont complètement parenthésées. On préfère cependant écrire 2*x/3 - 5*y plutôt que ((2*x)/3) - (5*y), conformément à un usage courant ; mais sans règle de précédence, l'expression non parenthésée pourrait tout aussi bien être analysée comme (2*x)/((3-5)*y), qui n'a sûrement pas la même valeur. Le tableau complet des précédences des opérateurs est donné en annexe. En voici un extrait, limité à quelques opérateurs arithmétiques :

Opérateurs Associativité
+ $_{\mathsf{un}}$ - $_{\mathsf{un}}$ droite à gauche
* / % gauche à droite
+ - gauche à droite

Les opérateurs de chaque ligne ont une même précédence, qui est plus élevée que celle des lignes suivantes : les opérateurs unaires (+, -) sont les plus forts, puis viennent les multiplicatifs (*, /, %) et les additifs (+, -). Par exemple, -1+3 est analysée comme (-1) + 3, et 2*x+3*y comme (2*x) + (3*y).

Les opérateurs d'une même ligne sont analysés par associativité comme indiqué sur le tableau. Ainsi, x/2*3 est analysé comme (x/2)*3, et x-y-z comme (x-y)-z.


Il arrive souvent que l'on range le résultat d'une opération binaire dans le premier de ses opérandes : $\mathtt{a=a}\ op\ \mathtt{b}$. Il est alors possible d'avoir recours à la notation abrégée: $\mathtt{a}\
op\mathtt{=b}$. On écrira ainsi : x+=y au lieu de x=x+y et x/=2 à la place de x=x/2. Outre la simplification d'écriture, l'utilisation de cette syntaxe peut avoir des effets importants sur le comportement et la rapidité du programme :


next up previous contents index
suivant: Booléens et expressions logiques monter: main précédent: La fonction main   Table des matières   Index
R Lalement