Dans cette section, nous apprendrons le opérateur priorité en Java accompagné d'exemples.
Qu’est-ce que la priorité des opérateurs ?
Le priorité des opérateurs représente comment deux expressions sont liées ensemble. Dans une expression, il détermine le regroupement des opérateurs avec des opérandes et décide de la manière dont une expression sera évaluée.
Lors de la résolution d'une expression, deux choses doivent être gardées à l'esprit : la première est une priorité et le deuxième est associativité .
Priorité
La priorité est la priorité pour regrouper différents types d'opérateurs avec leurs opérandes. Cela n'a de sens que si une expression comporte plusieurs opérateurs avec une priorité supérieure ou inférieure. Les opérateurs ayant une priorité plus élevée sont évalués en premier. Si nous voulons d'abord évaluer les opérateurs de priorité inférieure, nous devons regrouper les opérandes en utilisant des parenthèses, puis évaluer.
Associativité
Il faut suivre l'associativité si une expression a plus de deux opérateurs de même priorité. Dans un tel cas, une expression peut être résolue soit de gauche à droite ou de droite à gauche, par conséquent.
Tableau de priorité des opérateurs Java
Le tableau suivant décrit la priorité et l'associativité des opérateurs utilisés en Java.
Priorité | Opérateur | Taper | Associativité |
---|---|---|---|
quinze | () [] · | Parenthèses Indice du tableau Sélection des membres | De gauche à droite |
14 | ++ -- | Post-incrément unaire Post-décrémentation unaire | De droite à gauche |
13 | ++ -- + - ! ~ (taper) | Pré-incrémentation unaire Pré-décrémentation unaire Unaire plus Unaire moins Négation logique unaire Complément unaire au niveau du bit Castation de type unaire | De droite à gauche |
12 | * / % | Multiplication Division Module | De gauche à droite |
onze | + - | Ajout Soustraction | De gauche à droite |
dix | << >> >>> | Décalage vers la gauche au niveau du bit Décalage bit à droite avec extension de signe Décalage à droite au niveau du bit avec extension nulle | De gauche à droite |
9 | < <= > >= exemple de=> | Relationnel inférieur à Relationnel inférieur ou égal Relationnel supérieur à Relationnel supérieur ou égal Comparaison de types (objets uniquement) | De gauche à droite |
8 | == != | Relationnel est égal à Le relationnel n’est pas égal à | De gauche à droite |
7 | & | ET au niveau du bit | De gauche à droite |
6 | ^ | OU exclusif au niveau du bit | De gauche à droite |
5 | | | OU inclusif au niveau du bit | De gauche à droite |
4 | && | ET logique | De gauche à droite |
3 | || | OU logique | De gauche à droite |
2 | ? : | Conditionnel ternaire | De droite à gauche |
1 | = += -= *= /= %= | Affectation Mission d'ajout Affectation de soustraction Affectation de multiplication Affectation de division Affectation du module | De droite à gauche |
Remarque : plus le nombre est élevé, plus la priorité est élevée.
Exemple de priorité des opérateurs Java
Comprenons la priorité des opérateurs à travers un exemple. Considérez l’expression suivante et devinez la réponse.
1 + 5 * 3
Vous pensez peut-être que la réponse serait 18 mais ce n'est pas le cas. Parce que l’opérateur de multiplication (*) a une priorité plus élevée que l’opérateur d’addition (+). Par conséquent, l’expression évalue d’abord 5*3, puis évalue l’expression restante, c’est-à-dire 1+15. La réponse sera donc 16 .
Voyons un autre exemple. Considérons l'expression suivante.
x + y * z / k
Dans l'expression ci-dessus, les opérations * et / sont effectuées avant + en raison de la priorité. y est multiplié par z avant d'être divisé par k en raison de l'associativité.