Une bête erreur dans un bête script ....
Résolu
BotroxJrs
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
BotroxJrs Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
BotroxJrs Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Salut , je débute dans la programmation cela fait un moment que ça m'interresse et j'ai décidé de me lancé , après avoir lu quelques pages j'essaye un petit script pour voir si je m'en sors ... malheureusement je bloque déja.
Voila mon essai
Le premier problème est que le
Le problème suivant est que je fait la même démarche pour chaque boucle mais la boucle "
Merci d'avance a ceux qui vont prendre de leur temps pour m'aider !
Voila mon essai
import java.util.Scanner;
public class sdz1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int reponse = 500;
String yes = "oui";
int reponse2 = 17;
do {
System.out.println("Combien font 10 x 50 ? ");
System.out.println("Réessayé jusqu'a ce que la réponse soit correcte");
reponse = sc.nextInt();
}
while(reponse != 500);
System.out.println("Bravo, bonne réponse ! ");
do {
System.out.println("Voulez-vous continuer ? ");
yes = sc.nextLine();
}while(yes != "oui");
do {
System.out.println("plus compliqué , combien fait : \"5+3x4\" ? " );
System.out.println("Réessayé jusqu'a ce que la réponse soit correcte");
reponse2 = sc.nextInt();
}while(reponse2 != 17);
System.out.print("Très bien, tu as reussis ! ");
}
}
Le premier problème est que le
"Voulez-vous continuer ? "s'affiche 2 fois , bon ça c'est plutôt secondaire .
Le problème suivant est que je fait la même démarche pour chaque boucle mais la boucle "
"Voulez-vous continuer ? "ne fonctionne pas , quand j'entre la réponse
"oui"la boucle recommence et me re-demande
"Voulez-vous continuer ? "....
Merci d'avance a ceux qui vont prendre de leur temps pour m'aider !
A voir également:
- Une bête erreur dans un bête script ....
- Un pense-bête - Guide
- Script vidéo youtube - Guide
- Pense bête windows - Accueil - Applications & Logiciels
- Mas script - Accueil - Windows
- Erreur script google tag manager ✓ - Forum Jeux vidéo
2 réponses
Bonjour,
Le problème c'est la combinaison
Deux manière de résoudre le problème :
Personnellement je préfère la deuxième solution, mais la première permet de mieux comprendre le problème.
Remarque : c'est une particularité qui ne concerne que le clavier, mais la classe Scanner est plus générale que ça.
Le problème c'est la combinaison
sc.nextInt()et
sc.nextLine()car quand tu travailles avec le clavier, tu tapes ton nombre avec
sc.nextInt()et après tu appuies sur Entrée qui est consommée par le
sc.nextLine()suivant...
Deux manière de résoudre le problème :
- Après chaque
sc.nextInt()
tu rajoute unsc.nextLine()
qui récupère la touche Entrée. - Tu remplaces tes
sc.nextInt()
par unInteger.parseInt(sc.nextLine())
qui convertit la ligne en entier.
Personnellement je préfère la deuxième solution, mais la première permet de mieux comprendre le problème.
Remarque : c'est une particularité qui ne concerne que le clavier, mais la classe Scanner est plus générale que ça.
BotroxJrs
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
Parfait , merci beaucoup !
Pour le deuxième problème, c'est la vérification de l'égalité pour les chaînes de caractères (String). Pour vérifier qu'une chaîne est différentes d'une autre, l'opérateur != ne fonctionne plus, il faut faire appel à la fonction equals de la classe String, alors au lieu d'avoir :
Vous devez mettre :
while(yes != "oui")
Vous devez mettre :
while(!yes.equals("oui"))