Forum Clubic

Erreur de compilation (BlueJ)

Bonjour à tous !
Je dois coder un algorithme de cryptage avec l’algorithme de César (décalage des lettres selon une constante). Rien de compliqué, mais au moment de faire ce décalage, j’ai une erreur de compilation : possible loss of precision. Je ne comprend pas cette erreur.
Voici le bout de code correspondant :

[cpp]char lettre, codedlettre = ’ ';
for (int i = 0; i < chaine.length (); i++) {
lettre = chaine.charAt (i);
if (Character.isUpperCase (lettre)) {
codedlettre = (lettre -‘a’ + decalage) % 26 + ‘a’;
stg.setCharAt (i, codedlettre);
}
else if (Character.isLowerCase (lettre)) {
codedlettre = (char)(lettre - ‘A’ + decalage) % 26 + ‘A’;
stg.setCharAt (i, codedlettre);
}
else stg.setCharAt (i, lettre);
}[/cpp]

L’erreur se situe au niveau du codedlettre = ….

Quelqu’un pour m’éclairer? Merci !!!

Exect, pareil que pour le LowerCase ( d’ailleur tu n’as pas inversé minuscules (Lower) et majuscules (Upper) ? ).
Sinon pour quoi ne pas décaler tous les caractères, car si tu as des caractères avec accents ou des chiffres dans ton code tu vas avoir plein de trucs non codés.
Un truc du genre :
[cpp]char lettre, codedlettre = ’ ';
for (int i = 0; i < chaine.length (); i++) {
lettre = chaine.charAt (i);
codedlettre =(char)((lettre + decalage) % 256);
stg.setCharAt (i, codedlettre );
}[/cpp]
:kimouss: