Les Opérateurs

Dans ce tutoriel, on va s'interesser au opérateurs. Les opérateurs sont très pratiques pour les variables.
Je pense que vous avez compris la logique opérateur=opération.Il existe 5 types d'opérations de base:
- Addition, pour additioner deux valeurs. On peut y'écrire de 2 façons:

Notez que j'ai mis des commentaires:
Les commentaires sont précédés de // et ne s'exécute pas au moment de la compilation, ils servent justent comme pense-bête.
Dans ce code, j'ajoute 2 à x mais de deux façons différentes, ça revient au même.
- Soustraction, pour soustraire deux valeurs. On y écrit de la même façon qu'une addition sauf que ce n'est pas + mais -.
- Multiplication, pour multiplier 2 valeurs. On y écrit : x = x * 2 ou x *= 2
- Division, pour avoir le quotient d'une division de 2 valeurs. On y écrit : x = x / 2 ou x /= 2
- Modulo, pour avoir le reste d'une division de 2 valeurs. On y écrit : x = x % 2 ou x %= 2
Notez qu'il n'est pas nécessaire d'avoir un nombre à l'opération, on peut très bien faire : x *= y; par exemple.

Bref, il y a plein de possibilité. Maintenant voyons un code assez complexe:


Sur ce code, on déclare trois variables vie, potion et attaqueMonstre et chacune sont de type int.
On dit la vie du perso donc 100 à l'initial. Là, le perso se fait attaqué, il perd 35 PV donc on soustrait vie à attaqueMonstre.
On affiche de nouveau la vie. Là, le perso prend une potion. On additionne alors vie à potion.
Et on affiche la vie.

La classe Math

Il y a souvent des classes prédéfinis pour que ce soit plus simple de coder. Je vais vous montrer la classe Math
et quelques une de ces fonctionnalités.
Math.acos() : arc de cosinus.
Math.asin() : arc de sinus
Math.atan() : arc de tangente.
Math.cos() : cosinus.
Math.sin() : sinus.
Math.tan() : tangente.
Math.random() : chiffre aléatoire.
Math.exp() : exponentielle.
Math.pow() : puissance.
Il faut coder comme ceci:

Par exemple, faisons un programme très simple qui calcul la racine carré du nombre 9.


Les Opérateurs de manipulation de bit

Il existe tout une autre sorte d'opérateur : les opérateurs de manipulation de bit.
- "&" AND ou ET (bit à bit)
- "|" OR ou OU inclusif (bit à bit)
- "^" XOR ou OU exclusif (bit à bit)
- "<<" décalage à gauche
- ">>" décalage arithmétique à droite
- ">>>" décalage logique à droite
- "~" (unaire) complément à un (bit à bit)

Les opérateurs bit à bit

Si vous connaissez, on va faire un tableau de vérité comme ceci:
Tableau de vérité
Opérateur Valeur si A et B sont nul Valeur si A est positif et B nul Valeur si A est nul et B positif Valeur si A et B sont positif
AND 0 0 0 1
OR 0 1 1 1
XOR 0 1 1 0
Ce sont donc les opérateurs bit à bit et aussi de porte logique très connu (avec NOT et XNOR).

Les opérateurs de décalage

Il existe des opérateurs pour décaler des octets. Voici un tableau:
Opérateur Valeur de l'octet initial Valeur de l'octet final
décalage à gauche de 2 (<< 2) 00110101 11010100
décalage arithmétique à droite de 2 (>> 2) 01001010 00010010
décalage logique à droite de 2 (>>> 2) 01001010 11010010
La différence entre les deux décalages à droites est une question de 1 ou de 0.

CAST

Les cast d'une valeur servent à convertir un type de valeur en un autre type.
Parce que étudions un cas:

On peut convertir des bytes en int mais pas l'inverse.
L'ordre ce fait comme ceci (de celui qui peut être converti à celui qui ne le peut pas) : short|byte > int > long > float
On peut même convertir des int en String mais on apprendra cela dans le chapitre consacrée au chaîne de caractère :).
On va alors utiliser ce qu'on appelle un "cast" qui va pouvoir transformer notre int en byte. Un exemple concret :


Un cas intéréssant figure quand on veut un entier aléatoire avec Math.random(), on va alors convertir
en int la valeur de l'aléatoire qui est à la base un double:


C'est tout pour ce chapitre, j'espère qu'il vous aura servi et rendez-vous au chapitre suivant ici