Les expressions sont des éléments constitutifs essentiels de tout programme Java, généralement créées pour produire une nouvelle valeur, bien que parfois une expression attribue une valeur à une variable. Les expressions sont construites à l'aide de valeurs, les variables, opérateurs et appels de méthode.
Différence entre les instructions et les expressions Java
En termes de syntaxe du langage Java, une expression s'apparente à un clause en langue anglaise qui dépeint une signification spécifique. Avec la bonne ponctuation, il peut parfois se suffire à lui-même, même s'il peut également faire partie d'une phrase. Certaines expressions équivalent à des déclarations par elles-mêmes (en ajoutant un point-virgule à la fin), mais le plus souvent, elles font partie d'une déclaration.
Par exemple,
(a * 2)est une expression.
b + (a * 2);est une déclaration. On pourrait dire que l'expression est une clause et que l'instruction est la phrase complète car elle forme l'unité d'exécution complète.
Cependant, une déclaration ne doit pas nécessairement inclure plusieurs expressions. Vous pouvez transformer une expression simple en une instruction en ajoutant un point-virgule:
(a * 2);
Types d'expressions
Alors qu'une expression produit fréquemment un résultat, ce n'est pas toujours le cas. Il existe trois types d'expressions en Java:
- Ceux qui produisent une valeur, c'est-à-dire le résultat de
(1 + 1)
- Ceux qui affectent une variable, par exemple
(v = 10)
- Celles qui n'ont aucun résultat mais qui pourraient avoir un "effet secondaire" car une expression peut inclure un large éventail de des éléments tels que des appels de méthode ou des opérateurs d'incrémentation qui modifient l'état (c'est-à-dire la mémoire) d'un programme.
Exemples d'expressions
Voici quelques exemples de différents types d'expressions.
Expressions qui produisent une valeur
Les expressions qui produisent une valeur utilisent une large gamme d'opérateurs arithmétiques, de comparaison ou conditionnels Java. Par exemple, les opérateurs arithmétiques incluent +, *, /, , ++ et%. Certains opérateurs conditionnels sont?, ||, et les opérateurs de comparaison sont . Voir le Spécification Java pour une liste complète.
Ces expressions produisent une valeur:
3/2
5% 3
pi + (10 * 2)
Notez les parenthèses dans la dernière expression. Cela demande à Java de calculer d'abord la valeur de l'expression entre parenthèses (tout comme l'arithmétique que vous avez apprise à l'école), puis de terminer le reste du calcul.
Expressions qui affectent une variable
Ce programme contient ici de nombreuses expressions (indiquées en italique gras) que chacune attribue une valeur.
int secondsInDay = 0;
int
daysInWeek = 7;
int
hoursInDay = 24;
int
minutesInHour = 60;
int
secondsInMinute = 60;
booléen
CalculateWeek = true;
secondsInDay = secondsInMinute * minutesInHour * hoursInDay; //7
System.out.println (
"Le nombre de secondes dans une journée est:" + secondsInDay);
si (
CalculateWeek == true)
{
System.out.println (
"Le nombre de secondes dans une semaine est:" + secondsInDay * daysInWeek);
}
Les expressions des six premières lignes du code ci-dessus utilisent toutes l'opérateur d'affectation pour affecter la valeur de droite à la variable de gauche.
La ligne notée // 7 est une expression qui peut se suffire à elle-même en tant qu'instruction. Il montre également que les expressions peuvent être construites en utilisant plus d'un opérateur. La valeur finale de la variable secondsInDay est le point culminant de l'évaluation de chaque expression tour à tour (c'est-à-dire, secondsInMinute * minutesInHour = 3600, suivi de 3600 * hoursInDay = 86400).
Expressions sans résultat
Bien que certaines expressions ne produisent aucun résultat, elles peuvent avoir un effet secondaire qui se produit lorsqu'une expression change la valeur de l'un de ses opérandes.
Par exemple, certains opérateurs sont considérés comme produisant toujours un effet secondaire, tels que les opérateurs d'affectation, d'incrémentation et de décrémentation. Considère ceci:
int produit = a * b;
La seule variable modifiée dans cette expression est le produit; une et b ne sont pas modifiés. C'est ce qu'on appelle un effet secondaire.