Médiaforma

Java – Opérateurs

Print Friendly

Java dispose d’un grand nombre d’opérateurs. Pour faciliter leur identification, nous les avons répartis en plusieurs grands groupes.

Opérateurs arithmétiques

Ces opérateurs effectuent des opérations arithmétiques sur leurs opérandes.

Opérateur Fonction Exemple
= affectation a = 65
+ addition c = a + b
soustraction d = -a
* multiplication c = c * a
/ division c = a / b
% modulo (reste de la division entière) c = a % b

Les opérateurs sont exécutés selon une hiérarchie bien définie. Du plus prioritaire, vers le moins prioritaire :

– de changement de signe

*, / et %, de gauche à droite

+ et -, de gauche à droite

=

Il est parfois nécessaire d’utiliser des parenthèses pour forcer l’ordre d’exécution ou pour clarifier une expression de calcul.

A titre d’exemple, l’expression :

z = a + b / c + 4

N’est pas du tout équivalente à l’expression :

z = (a + b) / c + 4

Remarque

Il est possible d’affecter une même valeur à plusieurs variables en utilisant une seule instruction. Supposons par exemple que vous désiriez affecter la valeur 2 aux variables entières a, b, c et d. Vous pouvez utiliser les quatre instructions suivantes :

a = 2;
b = 2;
c = 2;
d = 2;

Ou encore alléger l’écriture en utilisant une seule instruction :

a = b = c = d = 2;

Opérateurs relationnels et logiques

Ces opérateurs effectuent des comparaisons sur leurs opérandes. Le résultat renvoyé est false si la condition n’est pas vérifiée. Il est égal à true dans le cas contraire.

Opérateur Fonction Exemple
! NON logique !(a == b)
inférieur à a < b
supérieur à a > b
<= inférieur ou égal à a <=b
>= supérieur ou égal à a >= b
!= différent de a != b
== égal à a == b
&& ET logique (a == b) && (c > d)
|| OU logique (a == b) || (c > d)

Attention :

Une erreur fréquente en Java consiste à utiliser l’opérateur « = » à la place de l’opérateur « == » dans une comparaison logique.

Par exemple, l’instruction :

if (couleur = 3)

ne compare pas le contenu de la variable couleur avec la valeur 3. Cette instruction affecte au contraire la valeur 3 à la variable couleur ! L’instruction permettant d’effectuer la comparaison est :

if (couleur == 3)

Opérateurs d’incrémentation

Les opérateurs d’incrémentation (++) et de décrémentation () sont utilisés pour augmenter et pour diminuer d’un la valeur stockée dans une variable.

Selon la position de l’opérateur, on parle de post incrémentation, de pré incrémentation, de post décrémentation et de pré-décrémentation :

Opérateur Fonction Exemple
++ post incrémentation a++
++ pré incrémentation ++a
post décrémentation a–
pré décrémentation –a

Dans une expression comportant un opérateur de pré incrémentation ou de pré décrémentation, l’incrémentation (la décrémentation) se déroule avant l’évaluation de l’expression.

Inversement, dans une expression comportant un opérateur de post incrémentation ou de post décrémentation, l’incrémentation (la décrémentation) se déroule après l’évaluation de l’expression.

La position (post ou pré) des opérateurs d’incrémentation et de décrémentation n’a aucune importance dans une expression ne comportant qu’un facteur. Par exemple, les expressions suivantes sont équivalentes :

a++;
++a;

Il en va autrement lorsque l’expression comporte plusieurs facteurs.

Exemple :

Ce programme montre l’importance de la position des opérateurs d’incrémentation dans une opération à plusieurs facteurs.

public class IncrDecr{
  public static void main (String args[]) throws java.io.IOException {
    // Illustration des opérateurs de comparaison
    int e1, e2, e3, m1;
    String Interm;

    System.out.println("Donnez une valeur au nombre entier e1 : ");
    Interm = Lit();
    e1 = Integer.parseInt(Interm);
    System.out.println("Donnez une valeur au nombre entier e2 : ");
    Interm = Lit();
    e2 = Integer.parseInt(Interm);

    m1 = e2; // Sauvegarde de e2
    e3 = e1 * ++e2;
    System.out.println("e1 * ++e2 = "+e3+" et e2 = "+e2);
    e2 = m1;
    e3 = e1 * e2++;
    System.out.println("e1 * e2++ = "+e3+" et e2 = "+e2);
  }

public static String Lit() throws java.io.IOException{
    String S = "";
    char C;
    while ((C=(char)System.in.read()) != '\r'){
      S = S + C;
    }
    C=(char)System.in.read();
    return S;
  }
}

Opérateurs intervenant au niveau des bits

Java possède plusieurs opérateurs permettant d’effectuer des opérations binaires telles que OU logique ou décalage d’un ou de plusieurs bits.

Opérateur Fonction Exemple
& ET logique a = 0xfa & 0x35
| OU logique a = 0xfa | 0x12
^ OU EXCLUSIF logique a ^= 0x32
~ NON logique a = ~b
>>  Décalage à droite a >>= c
<<  Décalage à gauche a = b << c
>>>  Décalage à droite avec remplissage par des 0 a >>>= c

Attention :

Les opérateurs &, | et ~ ne doivent pas être confondus avec leurs homologues &&, || et ^. Les premiers effectuent des opérations binaires sur leurs opérandes, alors que les seconds effectuent des comparaisons sur leurs opérandes.

Opérateurs d’affectation

Outre l’opérateur d’affectation « = », Java dispose de cinq autres opérateurs qui allègent l’écriture :

Opérateur Fonction Exemple Equivalent à
= Affectation de l’opérateur de droite à l’opérateur de gauche a = b + c  
+= Addition de l’opérateur de droite à l’opérateur de gauche et affectation à l’opérateur de gauche a += b a = a + b
-= Soustraction de l’opérateur de droite à l’opérateur de gauche et affectation à l’opérateur de gauche a -= b a = a – b
*= Multiplication de l’opérateur de droite par l’opérateur de gauche et affectation à l’opérateur de gauche a *= b a = a * b
/= Division de l’opérateur de gauche par l’opérateur de droite et affectation à l’opérateur de gauche a /= b a = a / b
%= Reste de la division entière de l’opérateur de gauche par l’opérateur de droite et affectation à l’opérateur de gauche a %= b a = a % b
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply