English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:
算术运算符
Opérateurs de relation
Opérateurs de bit
Opérateurs logiques
Opérateurs d'affectation
其他运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。
表格中的示例假设整数变量A的值为10,la valeur de la variable B est20 :
Operator | Description | Exemple |
---|---|---|
+ | 加法 - 相加运算符两侧的值 | A + B 等于 30 |
- | 减法 - 左操作数减去右操作数 | A – B 等于 -10 |
* | 乘法 - 相乘操作符两侧的值 | A * B等于200 |
/ | 除法 - 左操作数除以右操作数 | B / A等于2 |
% | 取余 - 左操作数除以右操作数的余数 | B%A等于0 |
++ | 自增: 操作数的值增加1 | B++ 或 ++B 等于 21(区别详见下文) |
-- | 自减: 操作数的值减少1 | B-- 或 --B 等于 19(区别详见下文) |
下面的简单示例程序演示了算术运算符。复制并粘贴下面的 Java 程序并保存为 ArithmeticOperator.java 文件,然后编译并运行这个程序:
class ArithmeticOperator { public static void main(String[] args) { double number1 = 12.5, number2 = 3.5, result; //使用加法运算符 result = number1 + number2; System.out.println("number1 + number2 = \ + result); //使用减法运算符 result = number1 - number2; System.out.println("number1 - number2 = \ + result); //使用乘法运算符 result = number1 * number2; System.out.println("number1 * number2 = \ + result); //使用除法运算符 result = number1 / number2; System.out.println("number1 / number2 = \ + result); // 使用余数运算符 result = number1 % number2; System.out.println("number1 % number2 = \ + result); } }
Les résultats de compilation et d'exécution des exemples ci-dessus sont les suivants :
number1 + number2 = 16.0 number1 - number2 = 9.0 number1 * number2 = 43.75 number1 / number2 = 3.5714285714285716 number1 % number2 = 2.0
1、incrémentation (++) décrémentation (--) opérateurC'est un opérateur d'arithmétique spécial, où deux opérateurs sont nécessaires pour l'opération dans les opérateurs d'arithmétique, tandis que les opérateurs d'incrémentation et de décrémentation sont un opérateur.
public class selfAddMinus{ public static void main(String[] args){ int a = 3;//Définir une variable ; int b = ++a;//Opération d'incrémentation int c = 3; int d = --c;//Opération de décrémentation System.out.println("La valeur après l'opération d'incrémentation est égale à"+b); System.out.println("La valeur après l'opération de décrémentation est égale à"+d); } }
Le résultat de l'exécution est :
La valeur après l'opération d'incrémentation est égale à4 La valeur après l'opération de décrémentation est égale à2
Analyse :
int b = ++a; Divisez le processus d'opération en: a = a+1=4; b = a =4, le résultat final est b =4,a =4
int d = --c; Divisez le processus d'opération en: c = c-1=2; d = c =2, le résultat final est d =2,c =2
2、prefix increment/decrement (++a,--a): Effectuez d'abord l'opération d'incrémentation ou de décrémentation, puis l'opération d'expression.
3、postfix increment/decrement (a++,a--) : Effectuez d'abord l'opération d'expression, puis l'opération d'incrémentation ou de décrémentation Exemple :
public class selfAddMinus{ public static void main(String[] args){ int a = 5;//Définir une variable ; int b = 5; int x = 2*++a; int y = 2*b++; System.out.println("Opération pré-fixe de l'opérateur d'incrémentation, après l'opération a ="+a+"x ="+x); System.out.println("Opération post-fixe de l'opérateur d'incrémentation, après l'opération b ="+b+"y ="+y); } }
Le résultat de l'exécution est :
Opération pré-fixe de l'opérateur d'incrémentation, après l'opération a =6,x =12Opération post-fixe de l'opérateur d'incrémentation, après l'opération b =6,y =10
Le tableau suivant montre les opérateurs de relation pris en charge par Java
La valeur de la variable entière A de l'exemple dans le tableau est10,la valeur de la variable B est20 :
Opérateurs | Description | Exemple |
---|---|---|
== | Vérifiez si les valeurs des deux opérateurs sont égales, si elles le sont, la condition est vraie. | (A == B) est faux. |
!= | Vérifiez si les valeurs des deux opérateurs sont égales, si elles ne le sont pas, la condition est vraie. | (A != B) est vrai. |
> | Vérifiez si la valeur de l'opérateur de gauche est supérieure à la valeur de l'opérateur de droite, si c'est le cas, la condition est vraie. | (A > B) est faux. |
< | Vérifiez si la valeur de l'opérateur de gauche est inférieure à la valeur de l'opérateur de droite, si c'est le cas, la condition est vraie. | (A < B) est vrai. |
>= | Vérifiez si la valeur de l'opérateur de gauche est supérieure ou égale à la valeur de l'opérateur de droite, si c'est le cas, la condition est vraie. | (A >= B) est faux. |
<= | Vérifiez si la valeur de l'opérateur de gauche est inférieure ou égale à la valeur de l'opérateur de droite, si c'est le cas, la condition est vraie. | (A <= B) est vrai. |
Le programme d'exemple simple suivant montre les opérateurs de relation. Copiez et collez le programme Java suivant et enregistrez-le sous le fichier Test.java, puis compilez et exécutez ce programme :
Code du fichier Test.java :
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 des exemples ci-dessus sont les suivants :
a == b = false a != b = true a > b = false a < b = true b >= a = true b <= a = false
Java définit des opérateurs de bit, appliqués aux types entiers (int), long, court (short), caractère (char) et octet (byte) et autres types.
Les opérateurs de bit agissent sur tous les bits et effectuent des opérations bit par bit. Supposons que a = 60, b = 13;Leur format binaire sera représenté comme suit :
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 de bit, en supposant que la valeur de la variable entière A soit 60 et la valeur de la variable B sont 13:
Operator | Description | Exemple |
---|---|---|
& | si les bits correspondants sont1alors le résultat est1sinon c'est 0 | (A&B),donne12c'est-à-dire 0000 1100 |
| | si les bits correspondants sont tous 0, le résultat est 0, sinon c'est 1 | (A | B) donne61c'est-à-dire 0011 1101 |
^ | si les valeurs des bits correspondants sont identiques, le résultat est 0, sinon c'est1 | (A ^ B) donne49c'est-à-dire 0011 0001 |
~ | Opérateur de négation binaire inverse chaque bit de l'opérande, c'est-à-dire 0 devient1,1devient 0. | (~A) donne-61c'est-à-dire1100 0011 |
<< | Opérateur de déplacement de bits à gauche. L'opérande de gauche est déplacé à gauche bit par bit du nombre de positions spécifié par l'opérande de droite. | A << 2得到240, c'est-à-dire 1111 0000 |
>> | Opérateur de déplacement de bits à droite. L'opérande de gauche est déplacé à droite bit par bit du nombre de positions spécifié par l'opérande de droite. | A >> 2得到15c'est-à-dire 1111 |
>>> | Opérateur de déplacement de bits à droite avec complément à zéro. La valeur de l'opérande de gauche est déplacée à droite d'un nombre de positions spécifié par l'opérande de droite, et les positions vides obtenues sont remplies de zéros. | A>>>2得到15c'est-à-dire 0000 1111 |
Le programme d'exemple simple suivant démontre les opérateurs de bit. Copiez et collez le programme Java suivant et enregistrez-le sous le fichier Test.java, puis compilez et exécutez ce 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 des exemples ci-dessus sont les suivants :
a & b = 12 a | b = 61 a ^ b = 49 ~a = -61 a << 2 = 240 a >> 2 = 15 a >>> 2 = 15
Le tableau suivant liste les opérations de base des opérateurs logiques, en supposant que la variable booléenne A soit true et la variable B soit false
Operator | Description | Exemple |
---|---|---|
&& | Il est appelé opérateur de et logique. La condition est true uniquement lorsque les deux opérandes sont true. | (A && B)为假。 |
| | | Il est appelé opérateur de ou logique. Si n'importe quel des deux opérandes est true, la condition est true. | (A || B)为真。 |
! | Il est appelé opérateur de négation logique. Il est utilisé pour inverser l'état logique de l'opérande. Si la condition est true, l'opérateur de négation logique obtient false. | !(A && B)为真。 |
Le programme d'exemple simple suivant démontre les opérateurs logiques. Copiez et collez le programme Java suivant et enregistrez-le sous le fichier Test.java, puis compilez et exécutez ce 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 des exemples ci-dessus sont les suivants :
a && b = false a || b = true !(a && b) = true
Lorsque l'utilisation des opérateurs logiques, le résultat est true uniquement lorsque les deux opérandes sont true, mais lorsque le premier opérande est false, le résultat est nécessairement false, et dans ce cas, le second opérande ne sera plus jugé.
public class LuoJi{}} public static void main(String[] args){ int a = 5;//Définir une variable ; boolean b = (a<4) && (a++<10); System.out.println("Le résultat de l'utilisation de l'opérateur logique court-circuit est "+b); System.out.println("Le résultat de a est "+a); } }
Le résultat de l'exécution est :
le résultat de l'utilisation de l'opérateur logique court-circuit est false le résultat de a est5
Analyse :Ce programme utilise l'opérateur logique court-circuit (&&), d'abord juger a<4 si le résultat de < est false, alors le résultat de b doit nécessairement être false, donc la deuxième opération a n'est plus exécutée++<10 de jugement, donc la valeur de a est 5。
Voici les opérateurs d'affectation pris en charge par le langage Java :
Operator | Description | Exemple |
---|---|---|
= | Opérateur d'affectation simple, qui assigne la valeur de l'opérateur de droite à l'opérateur de gauche | C = A + B assignera A + La valeur obtenue par B est assignée à C |
+ = | Opérateur d'affectation d'addition, qui assigne la somme de l'opérateur de gauche et de l'opérateur de droite à l'opérateur de gauche | C + = A est équivalent à C = C + A |
- = | Opérateur d'affectation de soustraction, qui assigne la différence de l'opérateur de gauche et de l'opérateur de droite à l'opérateur de gauche | C - = A est équivalent à C = C - A |
* = | Opérateur d'affectation de multiplication, qui assigne le produit de l'opérateur de gauche et de l'opérateur de droite à l'opérateur de gauche | C * = A est équivalent à C = C * A |
/ = | Opérateur d'affectation de division, qui assigne le quotient de la division de l'opérateur de gauche et de l'opérateur de droite à l'opérateur de gauche | C / = A, équivalent à C = C lorsque C et A sont du même type / A |
(%)= | Opérateur d'affectation de modulo, qui assigne le reste de la division de l'opérateur de gauche et de l'opérateur de droite à l'opérateur de gauche | C %= A est équivalent à C = C % A |
<< = | Opérateur d'affectation de décalage à gauche | C << = 2est équivalent à C = C << 2 |
>> = | Opérateur d'affectation de décalage à droite | C >> = 2est équivalent à C = C >> 2 |
&= | Opérateur d'affectation de AND binaire | C&= 2est équivalent à C = C&2 |
^ = | Opérateur d'affectation de XOR binaire | C ^ = 2est équivalent à C = C ^ 2 |
| = | Opérateur d'affectation de concaténation binaire | C | = 2est équivalent à C = C | 2 |
Le programme simple suivant montre l'opérateur d'affectation. Copiez et collez le programme Java suivant et enregistrez-le sous le nom de fichier AssignmentOperator.java, puis compilez et exécutez ce programme :
class AssignmentOperator { public static void main(String[] args) { int number1, number2; //Assigner5est assignée à number1 number1 = 5; System.out.println(number1); //La variable number2la valeur est assignée à number1 number2 = number1; System.out.println(number2); } }
Les résultats de compilation et d'exécution des exemples ci-dessus sont les suivants :
5 5
L'opérateur conditionnel est également appelé opérateur ternaire. Cet opérateur a3un opérateur nécessitant une seule opération et nécessitant de juger de la valeur de l'expression booléenne. L'opérateur conditionnel principal est de décider quelle valeur doit être assignée à la variable.
variable x = (expression) ? value if true : value if false
public class Test { public static void main(String[] args){ int a , b; a = 10; // si a est égal 1 si cela est établi, then set b to 20, sinon pour 30 b = (a == 1) ? 20 : 30; System.out.println( "La valeur de b est : " + b ); // si a est égal 10 si cela est établi, then set b to 20, sinon pour 30 b = (a == 10) ? 20 : 30; System.out.println( "La valeur de b est : " + b ); } }
Les résultats de compilation et d'exécution des exemples ci-dessus sont les suivants :
La valeur de b est : 30 La valeur de b est : 20
Cet opérateur est utilisé pour manipuler des exemples d'objets, pour vérifier si un objet est un type spécifique (type de classe ou de type d'interface).
Le format d'utilisation de l'opérateur instanceof est le suivant :
( Object reference variable ) instanceof (class/interface type)
Si l'objet de la variable de gauche de l'opérateur est une classe ou une interface (class/Si un objet d'interface) est comparé, le résultat est true.
Voici un exemple :
String name = "James"; boolean result = name instanceof String; // Comme name est de type String, il retourne true
Si l'objet comparé est compatible avec le type de droite, cet opérateur retourne toujours true.
Voyons un exemple ci-dessous :
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 des exemples ci-dessus sont les suivants :
true
Quand plusieurs opérateurs apparaissent dans une expression, lequel vient en premier et lequel en dernier ? Cela concerne la question du niveau de priorité des opérateurs. Dans une expression avec plusieurs opérateurs, la différence de niveau de priorité des opérateurs peut entraîner des résultats très différents.
For example,(1+3)+(3+2)*2,这个表达式如果按加号最优先计算,答案就是 18,如果按照乘号最优先,答案则是 14。
再如,x = 7 + 3 * 2;这里x得到13,而不是20,因为乘法运算符比加法运算符有较高的优先级,所以先计算3 * 2得到6,然后再加7。
The operators with the highest priority in the table are at the top, and the lowest priority are at the bottom.
Category | Operator | Associativity |
---|---|---|
Postfix | () [] . (dot operator) | Left to right |
Unary | expr++ expr-- | Left to right |
Unary | ++expr --expr + - ~ ! | Right to left |
Multiplicative | * /% | Left to right |
Additive | + - | Left to right |
Shift | >> >>> << | Left to right |
Relation | > >= < <= | Left to right |
Equal | == != | Left to right |
Bitwise AND | & | Left to right |
Bitwise XOR | ^ | Left to right |
Bitwise OR | | | Left to right |
Logical AND | && | Left to right |
Logical OR | | | | Left to right |
Conditional | ?: | Right to left |
Assignment | = + = - = * = / =%= >> = << =&= ^ = | = | Right to left |
Comma | , | Left to right |