Aide programmation débutante en java

temoindejava Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
temoindejava Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour!
Alors voilà mon probleme, j'ai voulu faire un programme en Java, qui affiche un commentaire correspondant à la note sur 20 que l'utilisateur a saisi. Cela marche bien, c'est le bon message qui s'affiche etc mais le problème c'est que j'ai voulu faire une boucle afin que quand je demande à l'utilisateur s'il veut re-saisir une note et qu'il dit oui, cela revient au début de la boucle vu que la condition est tant que reponse == oui, pourtant lorsque j'éxecute le programme, je n'ai même pas l'occasion de saisir oui ou non, il met directement la phrase que vous pouvez voir à la fin qui est en dehors de la boucle. Je ne comprends pas mon erreur, si quelqu'un peut m'aider :)https://img-19.ccm2.net/7ls4mMuSEFqA8BNbxY1aqIYA1PA=/73219d8795a64840a6215a53736a2007/ccm-ugc/Capture.PNG
A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Le problème vient de l'utilisation de Scanner.

Quand tu saisis la note tu fais deux choses :
1) tu tapes des chiffres
2) tu valides avec Entrée

Au niveau de Scanner, nextInt va lire uniquement les chiffres saisis.
Et quand il arrive sur le nextLine, il lit la touche Entrée que tu as déjà saisi.

Ce qu'il faut faire : toujours utiliser nextLine() et si besoin convertir le String pour récupérer un entier.

int note = Integer.parseInt(sc.nextLine());
0
temoindejava Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
je vous ai répondu en dessous pour pouvoir intégrer une image
0
temoindejava Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de prendre du temps pour me répondre! d'accord j'ai bien compris donc j'ai changé mais un problème persiste, j'ai maintenant la possibilité de répondre oui ou non, mais lorsque je mets oui il renvoye à l'instruction en dehors de la boucle : https://img-19.ccm2.net/kLBtJdSbWc94282Wqim-jeBsiTw=/71de4efa3fdd428797976a4b14ecbe70/ccm-ugc/Capture.PNG2.PNG
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
L'opérateur
==
compare la référence de deux objets, pas leur valeur.
Il faut utiliser la méthode equals() pour comparer des objets sur leurs valeurs.

while (reponse.equals("oui"))
0
temoindejava Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bien vu! alala... en plus c'est une méthode que je connais mais j'y aurai pas pensé! merci beaucoup! ça marche parfaitement
0