next up previous contents index
Next: Opérations bit à bit Up: À-côtés Previous: Caractères

    
Opérateurs et expressions arithmétiques

Les expressions arithmétiques sont formées à partir des opérateurs arithmétiques. Ceux-ci   sont les opérateurs additifs +, -, les opérateurs multiplicatifs *, / et %   (modulo) et les opérateurs unaires + et -.

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 à l'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.

opérateurs parenthésés
+ $_{\mathsf{un}}$ - $_{\mathsf{un}}$ par la droite
* / % par la gauche
+ - par la gauche

En termes de précédence, 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 binaires sont parenthésés par la gauche (en anglais, left associative) ; par exemple, x/2*3 est analysée comme (x/2)*3, et x-y-z comme (x-y)-z (s'ils étaient parenthésés par la droite, ces expressions seraient analysées respectivement comme x/(2*3) et comme x-(y-z)). Les opérateurs unnaires sont parenthésés par la droite : par exemple, -x est analysée comme -(-x) et non comme (-)x.

L'évaluation d'une expression arithmétique additive ou multiplicative comporte une phase de conversion :

L'évaluation des opérations unaires + et - comporte aussi une promotion de leur opérande en int si son type est byte, short ou char. Par conséquent, le type d'une expression arithmétique comportant l'une de ces opérations n'est jamais byte, short ou char.


   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
Next: Opérations bit à bit Up: À-côtés Previous: Caractères
R. Lalement
2000-10-23