Opérateurs Java


L'une des utilisations les plus élémentaires des ordinateurs est d'effectuer des opérations mathématiques. En tant que langage informatique, Java fournit également un riche ensemble d'opérateurs pour manipuler des variables. Nous pouvons diviser les opérateurs dans les groupes suivants :

  • Opérateurs arithmétiques

  • Opérateurs relationnels

  • Opérateurs de bits

  • Opérateurs logiques

  • Opérateur d'affectation

  • Autres opérateurs

Opérateurs arithmétiques

Les opérateurs arithmétiques sont utilisés dans les expressions mathématiques et fonctionnent de la même manière qu'en mathématiques. Le tableau suivant répertorie tous les opérateurs arithmétiques.

L'exemple du tableau suppose que la valeur de la variable entière A est 10 et la valeur de la variable B est 20 :

Opérateur                 Description Exemple
+                 Addition - les valeurs des deux côtés de l'opérateur d'addition                     A + B est égal à 30
-                 Soustraction - opérande gauche moins opérande droit                   A – B est égal à -10
                *               Multiplication - les valeurs des deux côtés de l'opérateur de multiplication                 A * B est égal à 200
                /                  Division - divise l'opérande de gauche par l'opérande de droite                     B / A est égal à 2
                    %               Modulo - le reste de l'opérande de gauche divisé par l'opérande de droite                    B%A est égal à 0
+ +               Auto-incrémentation - la valeur de l'opérande est augmentée de 1               B++ est égal à 21
                --                 Décrémentation -- la valeur de l'opérande est réduite de 1                 B - - est égal à 19

Exemple

L'exemple de programme simple suivant montre les opérateurs arithmétiques. Copiez et collez le programme Java suivant et enregistrez-le en tant que fichier Test.java, puis compilez et exécutez le programme :

public class Test {

  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     int c = 25;
     int d = 25;
     System.out.println("a + b = " + (a + b) );
     System.out.println("a - b = " + (a - b) );
     System.out.println("a * b = " + (a * b) );
     System.out.println("b / a = " + (b / a) );
     System.out.println("b % a = " + (b % a) );
     System.out.println("c % a = " + (c % a) );
     System.out.println("a++   = " +  (a++) );
     System.out.println("a--   = " +  (a--) );
     // 查看  d++ 与 ++d 的不同
     System.out.println("d++   = " +  (d++) );
     System.out.println("++d   = " +  (++d) );
  }
}

La compilation et l'exécution des résultats du L'exemple ci-dessus est le suivant :

a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++   = 10
a--   = 11
d++   = 25
++d   = 27

Opérateurs relationnels

Le tableau suivant montre les opérateurs relationnels pris en charge par Java

Instances dans le tableau La valeur de la variable entière A est 10, et la valeur de la variable B est 20 :

Opérateur                 Description Exemple
==                 Vérifie si les valeurs des deux opérandes sont égales, si c'est le cas alors la condition est vraie.                 (A == B) est faux (pas vrai).
!=                 Vérifie si les valeurs de deux opérandes sont égales, si les valeurs ne sont pas égales alors la condition est vraie.                 (A != B) est vrai.
>                Vérifie si la valeur de l'opérande gauche est supérieure à la valeur de l'opérande droit, si c'est le cas, la condition devient vraie.                 (A> B) n’est pas vrai.
<               Vérifie si la valeur de l'opérande gauche est inférieure à la valeur de l'opérande droit, si c'est le cas, la condition devient vraie.                 (A <B) est vrai.
> =              Vérifie si la valeur de l'opérande gauche est supérieure ou égale à la valeur de l'opérande droit, si c'est le cas, la condition devient vraie.                 (A> = B) est faux.
<=               Vérifie si la valeur de l'opérande de gauche est inférieure ou égale à la valeur de l'opérande de droite, si c'est le cas, la condition devient vraie.                 (A <= B) est vrai.

Exemple

L'exemple de programme simple suivant montre les opérateurs relationnels. Copiez et collez le programme Java suivant et enregistrez-le en tant que fichier Test.java, puis compilez et exécutez le programme :

public class Test {

  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     System.out.println("a == b = " + (a == b) );
     System.out.println("a != b = " + (a != b) );
     System.out.println("a > b = " + (a > b) );
     System.out.println("a < b = " + (a < b) );
     System.out.println("b >= a = " + (b >= a) );
     System.out.println("b <= a = " + (b <= a) );
  }
}

Les résultats de compilation et d'exécution de l'exemple ci-dessus sont les suivants :

a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

Opérateur bit à bit

Java définit des opérateurs au niveau bit, qui sont appliqués aux types entiers (int), entier long (long), entier court (short), type de caractère (char) et type d'octet (byte ).

Les opérateurs au niveau du bit opèrent sur tous les bits et fonctionnent au niveau du bit. Supposons que a = 60, b = 13 ; leur représentation au format binaire sera la suivante :

A = 0011 1100
B = 0000 1101
-----------------
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011

Le tableau suivant répertorie les opérations de base des opérateurs de bits, en supposant que la valeur de la variable entière A est 60 et la valeur de la variable B est 13 :

Exemple
Opérateur               Description Exemple
&                 Opérateur ET au niveau du bit, le résultat est 1 si et seulement si un certain bit des deux opérandes est différent de 0.                 (A&B), obtenez 12, soit 0000 1100
                      |                 Opérateur OU au niveau du bit, tant qu'un certain bit des deux opérandes a un non-0, le résultat sera 1.                 (A | B) obtient 61, soit 0011 1101
                  ^                     Opérateur XOR au niveau du bit, lorsqu'un certain bit des deux opérandes est différent, le bit de résultat est 1.                 (A ^ B) obtient 49, soit 0011 0001
                  ~               L'opérateur de complément au niveau du bit retourne chaque bit de l'opérande.                 (~A) obtient -61, soit 1100 0011
                <<                 Opérateur de décalage vers la gauche au niveau du bit. L'opérande de gauche est décalé vers la gauche du nombre de bits spécifié par l'opérande de droite.                 Un << 2 obtient 240, soit 1111 0000
>> Opérateur de décalage à droite au niveau du bit. L'opérande de gauche est décalé au niveau du bit vers la droite du nombre de bits spécifié par l'opérande de droite.                 A >> 2 obtient 15, soit 1111
>>> Opérateur de remplissage zéro avec décalage à droite au niveau du bit. La valeur de l'opérande de gauche est décalée vers la droite du nombre de bits spécifié par l'opérande de droite et les postes vacants résultants sont remplis de zéros.                 A>>>2 obtient 15, soit 0000 1111

L'exemple de programme simple suivant montre les opérateurs au niveau du bit. Copiez et collez le programme Java suivant et enregistrez-le en tant que fichier Test.java, puis compilez et exécutez le programme :

public class Test {
  public static void main(String args[]) {
     int a = 60; /* 60 = 0011 1100 */ 
     int b = 13; /* 13 = 0000 1101 */
     int c = 0;
     c = a & b;       /* 12 = 0000 1100 */
     System.out.println("a & b = " + c );

     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = " + c );

     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = " + c );

     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = " + c );

     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = " + c );

     c = a >> 2;     /* 15 = 1111 */
     System.out.println("a >> 2  = " + c );
  
     c = a >>> 2;     /* 15 = 0000 1111 */
     System.out.println("a >>> 2 = " + c );
  }
}

Les résultats de compilation et d'exécution de l'exemple ci-dessus sont les suivants :

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 15
a >>> 15

Opérateurs logiques

Le tableau suivant répertorie les opérations de base des opérateurs logiques, en supposant que la variable booléenne A est vraie et la variable B est fausse

< tr class="firstRow">

Opérateur Description Exemple &&
                    操作符                    描述                    例子
                    &&                    称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。                    (A && B)为假。
                    | |                    称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。                    (A | | B)为真。
                    !                    称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。                    !(A && B)为真。
Appelé l’opérateur logique ET. Une condition est vraie si et seulement si les deux opérandes sont vrais. <🎜> (A && B) est faux. <🎜><🎜><🎜> |<🎜> Appelé l’opérateur logique OU. La condition est vraie si l’un des deux opérandes est vrai. <🎜> (A | | B) est vrai. <🎜><🎜><🎜> ! <🎜> Appelé l’opérateur logique NOT. Utilisé pour inverser l'état logique de l'opérande. Si la condition est vraie, l’opérateur logique NOT deviendra faux. <🎜> ! (A && B) est vrai. <🎜><🎜><🎜><🎜>

Exemple

L'exemple de programme simple suivant montre les opérateurs logiques. Copiez et collez le programme Java suivant et enregistrez-le en tant que fichier Test.java, puis compilez et exécutez le programme :

public class Test {
  public static void main(String args[]) {
     boolean a = true;
     boolean b = false;
     System.out.println("a && b = " + (a&&b));
     System.out.println("a || b = " + (a||b) );
     System.out.println("!(a && b) = " + !(a && b));
  }
}

Les résultats de compilation et d'exécution de l'exemple ci-dessus sont les suivants :

a && b = false
a || b = true
!(a && b) = true

Opérateur d'affectation

Voici les opérateurs d'affectation pris en charge par le langage Java :

                C&=2 est équivalent à C=C&2                 C^=2 équivaut à C=C^2
Opérateur                 Description Exemple
=                 Opérateur d'affectation simple, attribue la valeur de l'opérande de droite à l'opérande de gauche                 C = A + B attribuera la valeur obtenue par A + B à C
+ =               Opérateur d'affectation d'addition, qui additionne l'opérande gauche et l'opérande droit et attribue la valeur à l'opérande gauche                         C + = A est équivalent à C = C + A
- =                 L'opérateur de soustraction et d'affectation, qui soustrait l'opérande de gauche et l'opérande de droite et attribue la valeur à l'opérande de gauche                           C - = A est équivalent à C = C -
UNE
* =               L'opérateur de multiplication et d'affectation, qui multiplie l'opérande de gauche et l'opérande de droite et attribue la valeur à l'opérande de gauche                         C*=A est équivalent à C=C*A
/ =               Opérateurs de division et d'affectation, qui divisent l'opérande de gauche et l'opérande de droite et attribuent la valeur à l'opérande de gauche                          C/=A est équivalent à C=C/A
(%)=                 Opérateurs de modulo et d'affectation, qui modulo les opérandes gauche et droit et attribuent la valeur à l'opérande gauche                            C%= A est équivalent à C = C%A
<< =                 Opérateur d'affectation de décalage à gauche                 C << = 2 équivaut à C = C << 2
>> Opérateur d'affectation de décalage à droite                 C >> = 2 est équivalent à C = C >> &=               Opérateur d'affectation ET au niveau du bit
                    ^ =                 Opérateur d'affectation XOR au niveau du bit
                | =                Opérateur d'affectation OU au niveau du bit                 C | 2 est équivalent à C = C 2

Exemple

L'exemple de programme simple ci-dessous

montre l'opérateur d'affectation. Copiez et collez le programme Java suivant et enregistrez-le en tant que fichier Test.java, puis compilez et exécutez le programme :

public class Test {
  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     int c = 0;
     c = a + b;
     System.out.println("c = a + b = " + c );
     c += a ;
     System.out.println("c += a  = " + c );
     c -= a ;
     System.out.println("c -= a = " + c );
     c *= a ;
     System.out.println("c *= a = " + c );
     a = 10;
     c = 15;
     c /= a ;
     System.out.println("c /= a = " + c );
     a = 10;
     c = 15;
     c %= a ;
     System.out.println("c %= a  = " + c );
     c <<= 2 ;
     System.out.println("c <<= 2 = " + c );
     c >>= 2 ;
     System.out.println("c >>= 2 = " + c );
     c >>= 2 ;
     System.out.println("c >>= a = " + c );
     c &= a ;
     System.out.println("c &= 2  = " + c );
     c ^= a ;
     System.out.println("c ^= a   = " + c );
     c |= a ;
     System.out.println("c |= a   = " + c );
  }
}

L'exemple de compilation et les résultats d'exécution ci-dessus sont les suivants :

c = a + b = 30
c += a  = 40
c -= a = 30
c *= a = 300
c /= a = 1
c %= a  = 5
c <<= 2 = 20
c >>= 2 = 5
c >>= 2 = 1
c &= a  = 0
c ^= a   = 10
c |= a   = 10

Opérateur conditionnel ( ?:)

L'opérateur conditionnel est également connu sous le nom d'opérateur ternaire. Cet opérateur possède 3 opérandes et doit évaluer la valeur d'une expression booléenne. L'objectif principal de cet opérateur est de décider quelle valeur doit être attribuée à la variable.

variable x = (expression) ? value if true : value if false

Instance

public class Test {
   public static void main(String args[]){
      int a , b;   
      a = 10;    
b = (a == 1) ? 20: 30;    
System.out.println( "Value of b is : " +  b );
      b = (a == 10) ? 20: 30;    
     System.out.println( "Value of b is : " + b );
   }
}

L'exemple de compilation et d'exécution des résultats ci-dessus est le suivant :

Value of b is : 30
Value of b is : 20

opérateur instanceOf

Cet opérateur est utilisé pour opérer instances d'objet. Vérifie si l'objet est d'un type spécifique (type de classe ou type d'interface).

Le format de l'opérateur instanceof est le suivant :

( Object reference variable ) instanceOf  (class/interface type)

Si l'objet pointé par la variable à gauche de l'opérateur est un objet de la classe ou de l'interface (class/interface ) sur le côté droit de l’opérateur, alors le résultat est vrai.

Voici un exemple :

String name = 'James';
boolean result = name instanceOf String; // 由于name是String类型,所以返回真

Cet opérateur renvoie toujours vrai si les objets comparés sont compatibles avec le type de droite.

Regardez l'exemple suivant :

class Vehicle {}

public class Car extends Vehicle {
   public static void main(String args[]){
      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result);
   }
}

Les résultats de compilation et d'exécution de l'exemple ci-dessus sont les suivants :

true

Priorité des opérateurs Java

Lorsque plusieurs opérations Lorsque des symboles apparaissent dans une expression, qui vient en premier et qui vient en dernier ? Cela implique la question de la priorité des opérateurs. Dans une expression multi-opérateurs, différentes priorités d’opérateur conduiront à des résultats finaux très différents.

Par exemple, (1+3) + (3+2)*2, si cette expression est calculée selon le signe plus comme priorité la plus élevée, la réponse est 18, et si le signe de multiplication est le priorité la plus élevée, la réponse est 14.

Un autre exemple, x = 7 + 3 * 2 ; ici x obtient 13, pas 20, car l'opérateur de multiplication a une priorité plus élevée que l'opérateur d'addition, donc 3 * 2 est calculé d'abord pour obtenir 6, puis ajoutez-en 7 de plus.

Les opérateurs avec la priorité la plus élevée dans le tableau ci-dessous se trouvent en haut du tableau, et les opérateurs avec la priorité la plus basse sont en bas du tableau.

                    Relations                     Égalité                     ET au niveau du bit                     XOR au niveau du bit Virgule
Catégorie               Opérateur                 Pertinence
                      Suffixe               () [] . (opérateur point)                 De gauche à droite
                    Un dollar + + - !~               De droite à gauche
Propriété multiplicative * /%               De gauche à droite
                    Additivité + -                 De gauche à droite
                    Maj                 >> >>> De gauche à droite
>> = << =                  De gauche à droite
== !=               De gauche à droite
              &               De gauche à droite
              ^                     De gauche à droite
                OU au niveau du bit               |                 De gauche à droite
                    ET logique               &&               De gauche à droite
                    OU logique               |               De gauche à droite
                    Conditions                 ? :                 De droite à gauche
Devoir               = + = - = * = / =%= >> = << De droite à gauche
              ,               De gauche à droite