Les opérateurs sont le fondement même du traitement des opérations mathématique et comparatif de n'importe quel langage, le Java ne fait pas exception. Ainsi, le langage de programmation Java supporte presque tous les opérateurs du langage de programmation C standard. Ces opérateurs standard ont la même priorité et la même associativité en langage de programmation Java que dans le langage de programmation C.
Les opérateurs de type entier
Opérateur | Description |
---|---|
== | Comparaison d'un égalité |
!= | Comparaison d'une différence |
> | Comparaison de plus grand que |
>= | Comparaison de plus grand ou égal que |
< | Comparaison de plus petit que |
<= | Comparaison de plus petit ou égal que |
+ | Effectue une addition |
- | Effectue une soustraction |
* | Effectue une multiplication |
/ | Effectue une division |
% | Effectue le reste d'une division (modulo) |
++ | Effectue une incrémentation |
-- | Effectue une décrémentation |
<< | Effectue un décalage à gauche |
>> | Effectue un décalage à droite |
>>> | Effectue un décalage à droite sans tenir compte du signe positif/négatif |
! | Effectue une «négation binaire» |
& | Effectue un «Et binaire» |
| | Effectue un «Ou binaire» |
^ | Effectue un «Ou exclusif binaire» |
+= | Affectation de l'entier par une addition |
-= | Affectation de l'entier par une soustraction |
*= | Affectation de l'entier par une multiplication |
/= | Affectation de l'entier par une division |
<<= | Affectation de l'entier par un décalage à gauche |
>>= | Affectation de l'entier par un décalage à droite |
>>>= | Affectation de l'entier par un décalage à droite sans tenir compte du signe positif/négatif |
%= | Affectation de l'entier par un reste d'une division (modulo) |
&= | Affectation de l'entier par un «Et binaire» |
|= | Affectation de l'entier par un «Ou binaire» |
^= | Affectation de l'entier par un «Ou exclusif binaire» |
Les opérateurs de type réel (à virgule flottante)
Opérateur | Description |
---|---|
== | Comparaison d'un égalité |
!= | Comparaison d'une différence |
> | Comparaison de plus grand que |
>= | Comparaison de plus grand ou égal que |
< | Comparaison de plus petit que |
<= | Comparaison de plus petit ou égal que |
+ | Effectue une addition |
- | Effectue une soustraction |
* | Effectue une multiplication |
/ | Effectue une division |
% | Effectue le reste d'une division (modulo) |
++ | Effectue une incrémentation |
-- | Effectue une décrémentation |
+= | Affectation de la valeur réel par une addition |
-= | Affectation de la valeur réel par une soustraction |
*= | Affectation de la valeur réel par une multiplication |
/= | Affectation de la valeur réel par une division |
%= | Affectation de la valeur réel par un reste d'une division (modulo) |
Les opérateurs de type booléen (Boolean)
Opérateur | Description |
---|---|
== | Comparaison d'un égalité |
!= | Comparaison d'une différence |
! | Effectue une négation |
& | Effectue un «Et binaire» |
| | Effectue un «Ou binaire» |
^ | Effectue un «Ou exclusif binaire» |
&& | Effectue un «Et logique |
|| | Effectue un «Ou logique» |
Remarques
- Java vs C : Le langage de programmation Java ne prend pas en charge l'opérateur de virgule permettant de combiner deux expressions en une seule (bien que l'instruction for simule cet opérateur de manière utile). Puisque Java ne vous permet pas de manipuler directement les pointeurs, il ne prend pas en charge les opérateurs de référence et de déréférence *, ->, et &, ni l'opérateur sizeof. De plus, Java ne considère pas [] pour les accès au tableau et les accès au champ pour être des opérateurs, comme le fait C. L'opérateur + appliqué aux valeurs String les concatène. Si un seul opérande de + est une chaîne de caractères, l'autre est converti en chaîne de caractères. La conversion est effectuée automatiquement pour les types primitifs et en appelant la méthode toString() des types non primitifs. Cet opérateur String + a la même priorité que l'opérateur + arithmétique. L'opérateur += fonctionne comme prévu pour les valeurs String.
- Java vs C++ : Pour les programmeurs C++, les opérateurs offre la possibilité d'être utilisé en tant surcharge d'opérateur. En fait, le Java ne supporte pas la surcharge des opérateurs et les concepteurs du langage de programmation Java ont décidé (après de nombreuses discussions) que les opérateurs surchargés étaient une idée géniale, mais que le code les utilisant devenait difficile à lire et à comprendre.
- Tous les types intégraux en Java étant des valeurs signées, l'opérateur Java >> est défini pour effectuer un décalage à droite avec une extension de signe. L'opérateur >>> considère la valeur à décaler comme un nombre non signé et décale les bits à droite avec une extension nulle. L'opérateur >>>= fonctionne comme prévu.
- Opérateur Et et Ou : Quand & et | sont appliqués aux types intégraux du langage de programmation Java, ils effectuent les opérations «Et» et «Ou» au niveau des bits (binaire). Le langage de programmation Java fait cependant une distinction forte entre les types intégraux et les types booléens. Ainsi, si ces opérateurs sont appliqués à des types booléens, ils effectuent des opérations logiques Et et Ou logiques. Ces opérateurs Et et Ou logiques évaluent toujours leurs deux opérandes, même lorsque le résultat de l'opération est déterminé après avoir analysé uniquement l'opérande gauche. Cette situation est utile lorsque les opérandes sont des expressions avec des effets secondaires (tels que des appels de méthodes) et que vous souhaitez toujours que les effets secondaires se produisent. Cependant, lorsque vous ne voulez pas que l'opérande correct soit évalué s'il n'est pas nécessaire, vous pouvez utiliser les opérateurs && et ||, effectuant des opérations Et et Ou logiques court-circuité, exactement comme en langage de programmation C. Les opérateurs &= et |= effectuent une opération binaire ou logique en fonction du type d'opérandes, comme on peut s'y attendre.
Exemple
Voici un exemple montrant une utilisation de ces opérandes :
- public class OperatorSamples {
- public static void main(String[] args) {
- int a = 1;
- long b =2;
- byte c = 3;
- int c_ = -3;
- String S = "Gladir" + ".com";
-
- System.out.print("false == 0 : ");
- if((false?1:0) == 0) System.out.println("égale");
- else System.out.println("pas égale");
- System.out.println("1 + 1 : " + Integer.toString(1 + 1));
- System.out.println("a - b : " + Long.toString(a - b));
- System.out.println("a * b * 20 : " + Long.toString(a * b * 20));
- System.out.println("2 ^ 4 : " + Math.round(Math.pow(2,4)));
- System.out.println(S);
- }
- }
on obtiendra le résultat suivant :
false == 0 : égale1 + 1 : 2
a - b : -1
a * b * 20 : 40
2 ^ 4 : 16
Gladir.com
Voir également
Mathématique - Algèbre de Boole - Table de vérité
Dernière mise à jour : Mercredi, le 3 juin 2015