Problème avec boucles & variable de type char

Iaroslaf 3 Messages postés jeudi 15 mars 2018Date d'inscription 15 mars 2018 Dernière intervention - 15 mars 2018 à 20:16 - Dernière réponse : KX 15781 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 18 octobre 2018 Dernière intervention
- 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 ?
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
KX 15781 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 18 octobre 2018 Dernière intervention - 15 mars 2018 à 20:28
1
Merci
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...)

Merci KX 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Iaroslaf 3 Messages postés jeudi 15 mars 2018Date d'inscription 15 mars 2018 Dernière intervention - 15 mars 2018 à 21:22
merci mais je ne comprends pas trop votre réponse sur l'autre post.
KX 15781 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 18 octobre 2018 Dernière intervention > Iaroslaf 3 Messages postés jeudi 15 mars 2018Date d'inscription 15 mars 2018 Dernière intervention - 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)
Iaroslaf 3 Messages postés jeudi 15 mars 2018Date d'inscription 15 mars 2018 Dernière intervention - 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 ?
KX 15781 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 18 octobre 2018 Dernière intervention > Iaroslaf 3 Messages postés jeudi 15 mars 2018Date d'inscription 15 mars 2018 Dernière intervention - 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.
Commenter la réponse de KX

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.