UKOnline

Opérateur et expression

Le chapitre précédent a présenté le concept de donnée et en particulier les types de données primitifs. On a pu voir les littéraux qui représentent une donnée de type primitif dans le code source et les variables et constantes qui permettent de stocker des données. Ce deuxième chapitre traite des opérateurs et des expressions qui permettent d'exécuter des opérations avec des données.

Les opérateurs permettent d'effectuer des opérations appliquées à des valeurs. On va les classer en différentes catégories : les opérateurs arithmétiques font des calculs sur des nombres, ceux de comparaison permettent de comparer des valeurs... Certains opérateurs ont des effets de bord, c'est-à-dire qu'en plus de faire une opération, ils vont également modifier la mémoire. Par exemple, l'opérateur d'affectation permet de changer la valeur d'une variable.

En effectuant des opérations sur des données, que ce soit des variables, constantes ou littéraux, on construit des expressions. Toute expression peut être évaluée et possède une valeur d'un certain type bien défini. Ce chapitre présente également des expressions complexes, combinaison d'expressions simples.

L'évaluation d'une expression ne se fait pas n'importe comment en Java, elle obéit à deux règles qu'il convient de connaitre, surtout pour l'évaluation d'expressions complexes. La règle de priorité définit l'ordre dans lequel les opérateurs sont appliqués. La règle d'associativité décide comment une expression ne contenant que des opérateurs de même priorité est évaluée, de gauche à droite ou inversement. Ces règles sont assez souvent intuitives et suivent les règles appliquées en mathématiques.

Enfin, la dernière section du chapitre décrit la conversion de données. Il est en effet possible de convertir des données d'un type primitif vers un autre (une donnée de type byte peut par exemple être convertie en une donnée de type int). On verra qu'il y a différents types de conversion possibles : avec ou sans perte d'information/de précision et implicite ou explicite.