|
Les opérateurs sont
des symboles qui permettent de manipuler des variables, c'est-à-dire
effectuer des opérations, les évaluer, ...
On distingue plusieurs types d'opérateurs:
- les opérateurs de calcul
- les opérateurs d'assignation
- les opérateurs d'incrémentation
- les opérateurs de comparaison
- les opérateurs logiques
- (les opérateurs bit-à-bit)
- (les opérateurs de rotation de bit)
Les opérateurs
de calcul permettent de modifier mathématiquement la
valeur d'une variable
| Opérateur |
Dénomination |
Effet |
Exemple |
Résultat (avec x valant 7) |
| + |
opérateur d'addition |
Ajoute deux valeurs |
x+3 |
10 |
| - |
opérateur de soustraction |
Soustrait deux valeurs |
x-3 |
4 |
| * |
opérateur de multiplication |
Multiplie deux valeurs |
x*3 |
21 |
| / |
plus: opérateur de division |
Divise deux valeurs |
x/3 |
2.3333333 |
| = |
opérateur d'affectation |
Affecte une valeur à une variable |
x=3 |
Met la valeur 3 dans la variable x |
Ces opérateurs
permettent de simplifier des opérations telles que
ajouter une valeur dans une variable et stocker le résultat
dans la variable. Une telle opérations s'écrirait
habituellement de la façon suivante par exemple: x=x+2
Avec les opérateurs d'assignation il est possible d'écrire
cette opération sous la forme suivante: x+=2
Ainsi, si la valeur de x était 7 avant opération,
elle sera de 9 après...
Les autres opérateurs
du même type sont les suivants:
| Opérateur |
Effet |
| += |
addition deux valeurs et stocke le résultat
dans la variable (à gauche) |
| -= |
soustrait deux valeurs et stocke le résultat
dans la variable |
| *= |
multiplie deux valeurs et stocke le résultat
dans la variable |
| /= |
divise deux valeurs et stocke le résultat
dans la variable |
Ce type d'opérateur
permet de facilement augmenter ou diminuer d'une unité
une variable. Ces opérateurs sont très utiles
pour des structures telles que des boucles, qui ont besoin
d'un compteur (variable qui augmente de un en un).
Un opérateur de type
x++ permet de remplacer des notations lourdes telles
que x=x+1 ou bien x+=1
| Opérateur |
Dénomination |
Effet |
Syntaxe |
Résultat (avec
x valant 7) |
| ++ |
Incrémentation |
Augmente d'une unité la variable |
x++ |
8 |
| -- |
Décrémentation |
Diminue d'une unité la variable |
x-- |
6 |
| Opérateur |
Dénomination |
Effet |
Exemple |
Résultat |
==
A ne pas confondre avec le signe d'affectation (=)!!
|
opérateur d'égalité |
Compare deux valeurs et vérifie
leur égalité |
x==3 |
Retourne True si X est égal
à 3, sinon False |
| < |
opérateur d'infériorité
stricte |
Vérifie qu'une variable est strictement
inférieure à une valeur |
x<3 |
Retourne True si X est inférieur
à 3, sinon False |
| <= |
opérateur d'infériorité |
Vérifie qu'une variable est inférieure
ou égale à une valeur |
x<=3 |
Retourne True si X est inférieur
ou égal à 3, sinon False |
| > |
opérateur de supériorité
stricte |
Vérifie qu'une variable est strictement
supérieure à une valeur |
x>3 |
Retourne True si X est supérieur
à 3, sinon False |
| >= |
opérateur de supériorité |
Vérifie qu'une variable est supérieure
ou égale à une valeur |
x>=3 |
Retourne True si X est supérieur
ou égal à 3, sinon False |
| != |
opérateur de différence |
Vérifie qu'une variable est différente
d'une valeur |
x!=3 |
Retourne True si X est différent
de 3, sinon False |
Ce type d'opérateur
permet de vérifier si plusieurs conditions sont vraies:
| Opérateur |
Dénomination |
Effet |
Syntaxe |
| || |
OU logique |
Vérifie qu'une des conditions est
réalisée |
((condition1)||(condition2))
|
| && |
ET logique |
Vérifie que toutes les conditions
sont réalisées |
((condition1)&&(condition2))
|
| ! |
NON logique |
Inverse l'état d'une variable booléenne
(retourne la valeur True si la variable vaut False,
False si elle vaut True) |
(!condition)
|
Si vous ne comprenez
pas ces opérateurs cela n'est pas important, vous n'en
aurez probablement pas l'utilité. Pour ceux qui voudraient
comprendre, rendez- vous aux chapitres suivants:
Ce type d'opérateur
traite ses opérandes comme des données binaires,
plutôt que des données décimales, hexadécimales
ou octales. Ces opérateurs traitent ces données
selon leur représentation binaire mais retournent des
valeurs numériques standards dans leur format d'origine.
Les opérateurs suivants
effectuent des opérations bit-à-bit, c'est-à-dire
avec des bits de même poids.
| Opérateur |
Dénomination |
Effet |
Syntaxe |
Résultat |
| & |
ET bit-à-bit |
Retourne 1 si les deux bits de même
poids sont à 1 |
9 & 12 (1001 & 1100) |
8 (1000) |
| | |
OU inclusif |
Retourne 1 si l'un ou l'autre des deux
bits de même poids est à 1 (ou les deux) |
9 | 12 (1001 | 1100) |
13 (1101) |
| ^ |
OU exclusif |
Retourne 1 si l'un des deux bits de même
poids est à 1 (mais pas les deux) |
9 ^ 12 (1001 ^ 1100) |
5 (0101) |
Si vous ne comprenez
pas ces opérateurs cela n'est pas important, vous n'en
aurez probablement pas l'utilité. Pour ceux qui voudraient
comprendre, rendez- vous aux chapitres suivants:
Ce type d'opérateur
traite ses opérandes comme des données binaires
d'une longueur de 32 bits, plutôt que des données
décimales, hexadécimales ou octales. Ces opérateurs
traitent ces données selon leur représentation
binaire mais retournent des valeurs numériques standards
dans leur format d'origine.
Les opérateurs suivants
effectuent des rotation sur les bits, c'est-à-dire
qu'il décale chacun des bits d'un nombre de bits vers
la gauche ou vers la droite. La première opérande
désigne la donnée sur laquelle on va faire le
décalage, la seconde désigne le nombre de bits
duquel elle va être décalée.
| Opérateur |
Dénomination |
Effet |
Syntaxe |
Résultat |
| << |
Rotation à gauche |
Décale les bits vers la gauche
(multiplie par 2 à chaque décalage). Les
bits qui sortent à gauche sont perdus, tandis que
des zéros sont insérés à droite |
6 << 1 (110 << 1) |
12 (1100) |
| >> |
Rotation à droite avec conservation
du signe |
Décale les bits vers la droite
(divise par 2 à chaque décalage). Les bits
qui sortent à droite sont perdus, tandis que le
bit non-nul de poids plus fort est recopié à
gauche |
6 >> 1 (0110 >> 1) |
3 (0011) |
| >>> |
Rotation à droite avec remplissage
de zéros |
Décale les bits vers la droite
(divise par 2 à chaque décalage). Les zéros
qui sortent à droite sont perdus, tandis que des
zéros sont insérés à gauche |
3 >>> 1 (0011 >>> 1) |
1 (0001) |
Lorsque l'on associe
plusieurs opérateurs, il faut que le compilateur sache
dans quel ordre les traiter, voici donc dans l'ordre décroissant
les priorités de tous les opérateurs:
| Priorité
des opérateurs |
| |
() |
[] |
. |
|
|
|
|
| |
-- |
++ |
! |
~ |
- (un opérande) |
- (un opérande
/td>
| (casting) |
new |
| |
* |
/ |
% |
|
|
|
|
| |
+ |
- |
|
|
|
|
|
| |
<< |
>> |
>>> |
|
|
|
|
| |
< |
<= |
>= |
> |
instanceof |
|
|
| |
== |
!= |
|
|
|
|
|
| |
& |
|
|
|
|
|
|
| |
^ |
|
|
|
|
|
|
| |
| |
|
|
|
|
|
|
| |
&& |
|
|
|
|
|
|
| |
|| |
|
|
|
|
|
|
| |
? |
: |
|
|
|
|
|
| |
= |
+= |
-= |
*= |
/= |
%= |
&= |
| |
<<= |
>>= |
>>>= |
^= |
|= |
|
|
| |
, |
|
|
|
|
|
|
 
|