Problème avec boucles & variable de type char

Iaroslaf Messages postés 3 Date d'inscription jeudi 15 mars 2018 Statut Membre Dernière intervention 15 mars 2018 - 15 mars 2018 à 20:16
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 - 15 mars 2018 à 22:30
Bonjour,

Depuis quelques semaines, je fais mes premiers pas en java. J'en suis aux boucles (instructions do...while), et ici j'essaie un petit programme de calcul de moyenne, puis la boucle se répétant avec comme condition la saisie de la variable char 'o'. Comme vous le voyez sur l'image, le programme compile parfaitement jusqu'à l'instruction afin de faire répéter la boucle...

Qu'en pensez-vous ?

1 réponse

KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 127
15 mars 2018 à 20:28
Bonjour,

Voir cette question et ma réponse :
http://www.commentcamarche.net/forum/affich-35209589-do-et-while

À l'occasion il faudra que je fasse une fiche bien détaillée car c'est une erreur qui revient souvent sur le forum et j'ai l'impression de me répéter...

PS. À l'avenir merci de copier-coller ton code sur le forum, plutôt que faire une impression écran de celui-ci, c'est plus pratique pour pouvoir tester le code si besoin sur nos machines (même si ici, il n'y a pas besoin...)
1
Iaroslaf Messages postés 3 Date d'inscription jeudi 15 mars 2018 Statut Membre Dernière intervention 15 mars 2018
15 mars 2018 à 21:22
merci mais je ne comprends pas trop votre réponse sur l'autre post.
0
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 127 > Iaroslaf Messages postés 3 Date d'inscription jeudi 15 mars 2018 Statut Membre Dernière intervention 15 mars 2018
15 mars 2018 à 21:53
Le problème vient de Scanner parce que tu appuies sur la touche Entrée pour valider la saisie des nombres. Mais nextDouble lit uniquement les nombres, pas la touche Entrée, qui est lue avec nextLine dans un String qui sera vide, et dont on ne peut donc pas lire le premier caractère puisqu'il n'y en a pas d'où l'erreur sur le charAt(0).

La solution est de remplacer les nextDouble par des nextLine combinés à des Double.parseDouble (comme pour les nextInt dans l'autre discussion)
0
Iaroslaf Messages postés 3 Date d'inscription jeudi 15 mars 2018 Statut Membre Dernière intervention 15 mars 2018
Modifié le 15 mars 2018 à 22:13
Ça marche ! Donc si j'ai bien compris, comme j'appuie sur la touche entrez pour valider ma saisie de nombre, cette touche est prise en compte comme caractère vide dans la variable char ?
0
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 127 > Iaroslaf Messages postés 3 Date d'inscription jeudi 15 mars 2018 Statut Membre Dernière intervention 15 mars 2018
15 mars 2018 à 22:30
C'est presque ça oui.
Tu dois avoir le même nombre de nextLine que le nombre de fois où tu appuies sur Entrée.
0
Rejoignez-nous