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 répartir les opérateurs dans les groupes suivants :
- Opérateurs arithmétiques
- Opérateurs relationnels
- Opérateurs bit à bit
- Opérateurs logiques
- Opérateurs d'affectation
- Autres opérateurs
Opérateurs arithmétiques
Les opérateurs arithmétiques sont utilisés dans les expressions mathématiques, et leur fonction est la même qu'en mathématiques. Le tableau suivant liste tous les opérateurs arithmétiques.
Dans les exemples du tableau, on suppose que la variable entière A a la valeur 10 et que la variable B a la valeur 20 :
| Operator | Description | Exemple |
|---|---|---|
| + | Addition - ajoute les valeurs de chaque côté de l'opérateur | A + B est égal à 30 |
| - | Soustraction - soustrait l'opérande de droite de l'opérande de gauche | A - B est égal à -10 |
| * | Multiplication - multiplie les valeurs de chaque côté de l'opérateur | A * B est égal à 200 |
| / | Division - divise l'opérande de gauche par l'opérande de droite | B / A est égal à 2 |
| % | Reste - le reste de la division de l'opérande de gauche par l'opérande de droite | B%A est égal à 0 |
| ++ | Incrémentation : augmente la valeur de l'opérande de 1 | B++ ou ++B est égal à 21 (voir ci-dessous pour la différence) |
| -- | Décrémentation : diminue la valeur de l'opérande de 1 | B-- ou --B est égal à 19 (voir ci-dessous pour la différence) |
Exemple
Le programme d'exemple simple ci-dessous illustre les opérateurs arithmétiques. Copiez et collez le programme Java suivant, enregistrez-le dans un fichier Test.java, puis compilez et exécutez ce programme :
Exemple
Exécuter l'exemple »
Le résultat de la compilation et de l'exécution de 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 d'incrémentation et de décrémentation
1. Opérateurs d'incrémentation (++) et de décrémentation (--)Ce sont des opérateurs arithmétiques spéciaux. Alors que les opérateurs arithmétiques nécessitent deux opérandes pour effectuer une opération, les opérateurs d'incrémentation et de décrémentation agissent sur un seul opérande.
Exemple
Le résultat est :
进行自增运算后的值等于4 进行自减运算后的值等于2
Explication :
int b = ++a; Le processus d'opération se décompose comme suit : a=a+1=4; b=a=4; le résultat final est b=4, a=4
int d = --c; Le processus d'opération se décompose comme suit : c=c-1=2; d=c=2; le résultat final est d=2, c=2
2. Incrémentation et décrémentation préfixées (++a, --a) :Effectuez d'abord l'opération d'incrémentation ou de décrémentation, puis évaluez l'expression.
3. Incrémentation et décrémentation postfixées (a++, a--) :Évaluez d'abord l'expression, puis effectuez l'opération d'incrémentation ou de décrémentation. Exemple :
Exemple
Le résultat est :
自增运算符前缀运算后a=6,x=12 自增运算符后缀运算后b=6,y=10
Opérateurs relationnels
Le tableau suivant répertorie les opérateurs relationnels pris en charge par Java.
Dans les exemples du tableau, la variable entière A a la valeur 10 et la variable B a la valeur 20 :
| Operator | Description | Exemple |
|---|---|---|
| == | Vérifie si les valeurs de deux opérandes sont égales ; si elles sont égales, la condition est vraie. | (A == B) est faux. |
| != | Vérifie si les valeurs de deux opérandes sont égales ; si les valeurs ne sont pas égales, la condition est vraie. | (A != B) est vraie. |
| > | 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 est vraie. | (A > B) est faux. |
| < | 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 est vraie. | (A < B) est vraie. |
| >= | 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 est vraie. | (A >= B) est faux. |
| <= | Vérifie si la valeur de l'opérande gauche est inférieure ou égale à la valeur de l'opérande droit ; si c'est le cas, la condition est vraie. | (A <= B) est vraie. |
Exemple
Le programme d'exemple simple ci-dessous illustre les opérateurs relationnels. Copiez et collez le programme Java suivant, enregistrez-le dans un fichier Test.java, puis compilez et exécutez ce programme :
Code du fichier Test.java :
Le résultat de la compilation et de l'exécution de l'exemple ci-dessus est le suivant :
a == b = false a != b = true a > b = false a < b = true b >= a = true b <= a = false
Opérateurs bit à bit
Java définit des opérateurs bit à bit, qui s'appliquent au type entier (int), au type long (long), au type short (short), au type caractère (char) et au type octet (byte), etc.
Les opérateurs bit à bit agissent sur tous les bits et effectuent les opérations bit par bit. Supposons a = 60, b = 13 ; leur représentation 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 liste les opérations de base des opérateurs bit à bit, en supposant que la variable entière A a la valeur 60 et que la variable B a la valeur 13 :
| Operator | Description | Exemple |
|---|---|---|
| & | Si les bits correspondants sont tous deux à 1, le résultat est 1 ; sinon, il est 0. | (A & B) donne 12, soit 0000 1100 |
| | | Si les bits correspondants sont tous deux à 0, le résultat est 0 ; sinon, il est 1. | (A | B) donne 61, soit 0011 1101 |
| ^ | Si les valeurs des bits correspondants sont identiques, le résultat est 0 ; sinon, il est 1. | (A ^ B) donne 49, soit 0011 0001 |
| 〜 | L'opérateur de complément bit à bit inverse chaque bit de l'opérande, c'est-à-dire que 0 devient 1 et 1 devient 0. | (~A) donne -61, soit 1100 0011 |
| << | Opérateur de décalage à gauche bit à bit. L'opérande gauche est décalé vers la gauche d'un nombre de bits spécifié par l'opérande droit. | A << 2 donne 240, c.-à-d. 1111 0000 |
| >> | Opérateur de décalage à droite bit à bit. L'opérande gauche est décalé vers la droite du nombre de bits spécifié par l'opérande droit. | A >> 2 donne 15, c.-à-d. 1111 |
| >>> | Opérateur de décalage à droite bit à bit avec remplissage de zéros. La valeur de l'opérande gauche est décalée vers la droite du nombre de bits spécifié par l'opérande droit, et les bits libérés sont remplis de zéros. | A >>> 2 donne 15, c.-à-d. 0000 1111 |
Exemple
Le programme d'exemple simple ci-dessous illustre les opérateurs bit à bit. Copiez et collez le programme Java suivant, enregistrez-le dans un fichier Test.java, puis compilez et exécutez ce programme :
Code du fichier Test.java :
Le résultat de la compilation et de l'exécution de l'exemple ci-dessus est le suivant :
a & b = 12 a | b = 61 a ^ b = 49 ~a = -61 a << 2 = 240 a >> 2 = 15 a >>> 2 = 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 que la variable B est fausse.
| Operator | Description | Exemple |
|---|---|---|
| && | Appelé opérateur ET logique. La condition est vraie si et seulement si les deux opérandes sont vrais. | (A && B) est faux. |
| | | | Appelé opérateur OU logique. Si l'un des deux opérandes est vrai, la condition est vraie. | (A || B) est vrai. |
| ! | Appelé opérateur NON logique. Il est utilisé pour inverser l'état logique de l'opérande. Si une condition est vraie, alors l'opérateur NON logique produira faux. | !(A && B) est vrai. |
Exemple
Le programme d'exemple simple ci-dessous illustre les opérateurs logiques. Copiez et collez le programme Java suivant, enregistrez-le dans un fichier Test.java, puis compilez et exécutez ce programme :
Exemple
Le résultat de la compilation et de l'exécution de l'exemple ci-dessus est le suivant :
a && b = false a || b = true !(a && b) = true
Opérateurs logiques à court-circuit
Lors de l'utilisation de l'opérateur ET logique, le résultat n'est vrai que si les deux opérandes sont vrais, mais si le premier opérande est faux, le résultat est nécessairement faux, et le second opérande n'est plus évalué.
Exemple
La sortie est :
使用短路逻辑运算符的结果为false a的结果为5
Analyse :Ce programme utilise l'opérateur logique à court-circuit (&&). D'abord, le résultat de a<4 est déterminé comme faux, donc le résultat de b est nécessairement faux ; par conséquent, la seconde opération a++<10 n'est pas exécutée, donc la valeur de a est 5.
Opérateurs d'affectation
Voici les opérateurs d'affectation pris en charge par le langage Java :
| Operator | Description | Exemple |
|---|---|---|
| = | Opérateur d'affectation simple : affecte la valeur de l'opérande droit à l'opérande gauche. | C = A + B affectera la valeur de A + B à C. |
| + = | Opérateur d'addition et d'affectation : il additionne les opérandes gauche et droit et affecte le résultat à l'opérande gauche. | C += A équivaut à C = C + A |
| - = | Opérateur de soustraction et d'affectation : il soustrait l'opérande droit de l'opérande gauche et affecte le résultat à l'opérande gauche. | C -= A est équivalent à C = C - A |
| * = | Opérateur de multiplication et d'affectation : il multiplie les opérandes gauche et droit et affecte le résultat à l'opérande gauche. | C *= A est équivalent à C = C * A |
| / = | Opérateur de division et d'affectation : il divise l'opérande gauche par l'opérande droit et affecte le résultat à l'opérande gauche. | C /= A, lorsque C et A sont du même type, est équivalent à C = C / A |
| (%)= | Opérateur de modulo et d'affectation : il prend le modulo des opérandes gauche et droit et affecte le résultat à l'opérande gauche. | C %= A est équivalent à C = C % A |
| << = | Opérateur d'affectation de décalage à gauche | C <<= 2 est équivalent à C = C << 2 |
| >> = | Opérateur d'affectation de décalage à droite | C >>= 2 est équivalent à C = C >> 2 |
| &= | Opérateur d'affectation ET bit à bit | C &= 2 est équivalent à C = C & 2 |
| ^ = | Opérateur d'affectation XOR bit à bit | C ^= 2 est équivalent à C = C ^ 2 |
| | = | Opérateur d'affectation OU bit à bit | C |= 2 est équivalent à C = C | 2 |
Exemple
Le programme d'exemple simple suivant illustre les opérateurs d'affectation. Copiez et collez le programme Java suivant, enregistrez-le dans un fichier Test.java, puis compilez et exécutez ce programme :
Code du fichier Test.java :
Le résultat de la compilation et de l'exécution de l'exemple ci-dessus est le suivant :
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 aussi appelé opérateur ternaire. Cet opérateur a 3 opérandes et doit évaluer une expression booléenne. Le but principal de cet opérateur est de décider quelle valeur doit être affectée à une variable.
variable x = (expression) ? value if true : value if false
Exemple
Code du fichier Test.java :
Le résultat de la compilation et de l'exécution de l'exemple 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 sur des instances d'objet, en vérifiant si l'objet est d'un type spécifique (type classe ou type interface).
Le format d'utilisation de l'opérateur instanceof est le suivant :
( Object reference variable ) instanceof (class/interface type)
Si l'objet référencé par la variable à gauche de l'opérateur est un objet de la classe ou de l'interface à droite de l'opérateur, le résultat est true.
Voici un exemple :
String name = "James"; boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
Si l'objet comparé est compatible avec le type de droite, cet opérateur renvoie toujours true.
Regardez l'exemple suivant :
Le résultat de la compilation et de l'exécution de l'exemple ci-dessus est le suivant :
true
Précédence des opérateurs Java
Lorsque plusieurs opérateurs apparaissent dans une expression, lequel vient en premier ? Cela implique la question de la précédence des opérateurs. Dans une expression à plusieurs opérateurs, une précédence d'opérateurs différente peut conduire à des résultats finaux très différents.
Par exemple, (1+3) + (3+2)*2. Si l'addition est calculée en premier avec la précédence la plus élevée, la réponse est 18 ; si la multiplication est calculée en premier, la réponse est 14.
Autre exemple : x = 7 + 3 * 2 ; ici x vaut 13, et non 20, car l'opérateur de multiplication a une précédence plus élevée que l'opérateur d'addition, donc 3 * 2 est calculé en premier pour obtenir 6, puis 7 est ajouté.
Dans le tableau ci-dessous, les opérateurs ayant la précédence la plus élevée sont en haut, et ceux ayant la précédence la plus faible sont en bas.
| Catégorie | Operator | Associativité |
|---|---|---|
| Postfixe | () [] . (opérateur point) | De gauche à droite |
| Unaire | expr++ expr-- | De gauche à droite |
| Unaire | ++expr --expr + - ~ ! | De droite à gauche |
| Multiplicatif | * /% | De gauche à droite |
| Additif | + - | De gauche à droite |
| Décalage | >> >>> << | De gauche à droite |
| Relationnel | > >= < <= | De gauche à droite |
| Égalité | == != | De gauche à droite |
| ET bit à bit | & | De gauche à droite |
| OU exclusif bit à bit | ^ | De gauche à droite |
| OU bit à bit | | | De gauche à droite |
| ET logique | && | De gauche à droite |
| OU logique | | | | De gauche à droite |
| Conditional | ?: | De droite à gauche |
| Affectation | = + = - = * = / =%= >> = << =&= ^ = | = | De droite à gauche |
| Virgule | , | De gauche à droite |