Impossible d'additionner

Fermé
maxitonor Messages postés 28 Date d'inscription mercredi 13 avril 2016 Statut Membre Dernière intervention 21 mars 2019 - 18 août 2017 à 20:51
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 19 août 2017 à 00:42
Je commence le Java et en essayant de faire quelque truc.. j'essaye d'aditionner deux nombre comme vous le voyer mais 2+2=4 sa me mets 22



package fr.maxitonor.essai1;

public class main {

public static void main(String[] args) {

String[] pseudo = {"1","2","c","d","e","f"};

String psepse = pseudo[1]+pseudo[1];

System.out.println(psepse);

}
}

2 réponses

Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
18 août 2017 à 23:08
Bonsoir

Grandasse a vu juste.
une string est du texte, et donc "1" n'est pas le nombre 1, mais en quelque sorte "la lettre" 1.
De même que
"C" + "o" + "u" + "c"  + "o" + "u"
retournera
"Coucou"
,
"1" + "1"
retourne
"11"
.

Il faut donc faire comprendre à l'ordinateur que c'est le nombre que tu veux additionner et donc convertir le texte en nombre
int un = Integer.parseInt("1");
int resultat = un + un;




1
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 août 2017 à 00:10
Tout à fait.

Mais de toute façon il ne faudrait jamais mélanger les torchons et les serviettes.

Dans
String[] pseudo = {"1","2","c","d","e","f"};
tu manipules à la fois des chiffres et des lettres, donc faire une transformation de
pseudo[1]
en chiffres ça va marcher, parce que effectivement dans ce cas précis à la case 1 tu as
"2"
qui représente un chiffre, mais si tu fais la même transformation sur
pseudo[2]
ça va planter car
"c"
est une lettre...

Donc faire un code qui fonctionne pour une case et plante pour la case d'à côté ce n'est pas propre, ici il faudrait soit considérer que toutes les valeurs sont des String (donc assumer que
"2"+"2"="22"
) soit considérer que toutes les valeurs représentent des chiffres et tous les convertir (impossible en décimal)
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
19 août 2017 à 00:42
Salut KX, bien vu je n'avais pas fait attention aux autres valeurs du tableau.
Ça se complique, il faut tester d'une façon ou d'une autre si les 2 items représentent un nombre, si oui les additionner, si non les concaténer.
0
Grandasse_ Messages postés 924 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 27 avril 2023 592
18 août 2017 à 20:59
Bonjour,
Je connais mal Java, mais j'ai une idée sur la question.
Faites attention au 'typage' des variables.
Ici vous additionnez deux chaines de caractère (string) donc forcément ça retourne une chaine concaténée.
Il doit exister des fonctions pour changer pseudo[1] d'un string à un integer, je vous laisse chercher !
0
maxitonor Messages postés 28 Date d'inscription mercredi 13 avril 2016 Statut Membre Dernière intervention 21 mars 2019 2
18 août 2017 à 21:01
merci je vais chercher peut etre si je passe les variable string à du int sa marchera
0
maxitonor Messages postés 28 Date d'inscription mercredi 13 avril 2016 Statut Membre Dernière intervention 21 mars 2019 2 > maxitonor Messages postés 28 Date d'inscription mercredi 13 avril 2016 Statut Membre Dernière intervention 21 mars 2019
18 août 2017 à 21:03
sa marche pas vu que c'est une chaine il faut apsolument la variable string
0