Contenu du cours
Notions de Base de Java
Notions de Base de Java
Opérations Mathématiques sur Char
Pourquoi les opérations mathématiques sont-elles possibles sur le type char ?
Le type de données char
est assez intéressant. Il stocke des caractères, mais il est également possible d'effectuer des opérations sur ce type de données.
Quel sera le résultat de l'exécution de ce code ?
Main
package com.example; public class Main { public static void main(String[] args) { char firstLetter = 'A'; char secondLetter = '('; // We use type casting here to convert value from `int` to `char` char result = (char) (firstLetter + secondLetter); System.out.println(result); } }
On pourrait penser que le résultat serait A(
, mais comme on peut le constater, le résultat est i
. Pourquoi cela ? char
n'est pas un type de données purement destiné aux caractères ; il prend les caractères dans la table ASCII. Le caractère A
correspond au nombre 65 dans la table, tandis que le caractère (
correspond au nombre 40. Comme vous l'avez peut-être deviné, le caractère i
correspond à 105, car 65 + 40 = 105.
Il est important de le savoir, car cela permet d'utiliser le type de données char
de manière efficace et flexible.
Voici un lien vers la table ASCII.
Conversion de type
Dans le code ci-dessus, vous avez peut-être remarqué cette syntaxe inhabituelle :
python
Mais pourquoi le (char)
est-il nécessaire ? L'opération d'addition retourne un résultat de type int
car elle additionne les codes numériques des caractères. Pour stocker ce résultat dans une variable de type char
, une conversion explicite est nécessaire. C'est exactement ce que fait la construction (char)
—elle convertit la valeur numérique en un caractère.
Dans notre exemple, le résultat de l'addition est le nombre 105. La construction (char)
convertit ce nombre en le caractère correspondant au code 105 dans la table ASCII, qui se trouve être le caractère i
.
Merci pour vos commentaires !