Java - problème avec des calculs (virgules + exception)
cireek
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai écrit un code de ce type en Java, mais je n'arrive pas à gérer le fait que la réponse du calcul peut-être avec virgule. Par exemple, pour une division, je ne peux pas mettre de nombre à virgule.
De plus, au moment où l'utilisateur entre un nombre à virgule en utilisant un point, cela ne fonctionne pas. Comment puis-je faire une exception pour cela?
Voici mon code:
J'ai écrit un code de ce type en Java, mais je n'arrive pas à gérer le fait que la réponse du calcul peut-être avec virgule. Par exemple, pour une division, je ne peux pas mettre de nombre à virgule.

De plus, au moment où l'utilisateur entre un nombre à virgule en utilisant un point, cela ne fonctionne pas. Comment puis-je faire une exception pour cela?
Voici mon code:
package eac; import java.util.Scanner; import java.util.Random; public class first { public static void main(String[] args) { //Etablissement des variables + inisialisation du scanner. String nom; int cpt,serie,totbnrep=0,totmvrep=0; Scanner read = new Scanner(System.in); System.out.println("Quel est votre nom?"); nom = read.nextLine(); System.out.println("Bonjour " + nom + "."); System.out.println("----------------------------------"); System.out.println("Combien de fois voulez vous faire l'exercice?"); serie = read.nextInt(); for(cpt=0;cpt<serie;cpt++) { int A,B,bnrep=0,mvrep=0; double reponse,C; Random rand = new Random(); A = rand.nextInt(10)+1; B = rand.nextInt(10)+1; int calcul = rand.nextInt(4); switch(calcul) { case 0: { while(bnrep<1) { System.out.println("----------------------------------"); System.out.println(" "); System.out.println("Voici le calcul:"); if(A>=B) { C = A+B; System.out.println("Quel est le résultat de: "+ A +" + "+ B +" ?"); reponse = read.nextDouble(); if(reponse==C) { bnrep=bnrep+1; System.out.println("Bonne réponse!"); } else { mvrep=mvrep+1; System.out.println("Mauvaise réponse!"); } System.out.println(" "); } else { C = B+A; System.out.println("Quel est le résultat de: "+ B +" + "+ A +" ?"); reponse = read.nextDouble(); if(reponse==C) { bnrep=bnrep+1; System.out.println("Bonne réponse!"); } else { mvrep=mvrep+1; System.out.println("Mauvaise réponse!"); } System.out.println(" "); } if (bnrep<1) { System.out.println("----------------------------------"); System.out.println("Veuillez recommencer."); } } break; } case 1: { while(bnrep<1) { System.out.println("----------------------------------"); System.out.println(" "); System.out.println("Voici le calcul:"); if(A>=B) { C = A-B; System.out.println("Quel est le résultat de: "+ A +" - "+ B +" ?"); reponse = read.nextDouble(); if(reponse==C) { bnrep=bnrep+1; System.out.println("Bonne réponse!"); } else { mvrep=mvrep+1; System.out.println("Mauvaise réponse!"); } System.out.println(" "); } else { C = B-A; System.out.println("Quel est le résultat de: "+ B +" - "+ A +" ?"); reponse = read.nextDouble(); if(reponse==C) { bnrep=bnrep+1; System.out.println("Bonne réponse!"); } else { mvrep=mvrep+1; System.out.println("Mauvaise réponse!"); } System.out.println(" "); } if (bnrep<1) { System.out.println("----------------------------------"); System.out.println("Veuillez recommencer."); } } break; } case 2: { while(bnrep<1) { System.out.println("----------------------------------"); System.out.println(" "); System.out.println("Voici le calcul:"); if(A>=B) { C = A*B; System.out.println("Quel est le résultat de: "+ A +" * "+ B +" ?"); reponse = read.nextDouble(); if(reponse==C) { bnrep=bnrep+1; System.out.println("Bonne réponse!"); } else { mvrep=mvrep+1; System.out.println("Mauvaise réponse!"); } System.out.println(" "); } else { C = B*A; System.out.println("Quel est le résultat de: "+ B +" * "+ A +" ?"); reponse = read.nextDouble(); if(reponse==C) { bnrep=bnrep+1; System.out.println("Bonne réponse!"); } else { mvrep=mvrep+1; System.out.println("Mauvaise réponse!"); } System.out.println(" "); } if (bnrep<1) { System.out.println("----------------------------------"); System.out.println("Veuillez recommencer."); } } break; } case 3: { while(bnrep<1) { System.out.println("----------------------------------"); System.out.println(" "); System.out.println("Voici le calcul:"); if(A>=B) { C = A/B; System.out.println("Quel est le résultat de: "+ A +" / "+ B +" ?"); reponse = read.nextDouble(); if(reponse==C) { bnrep=bnrep+1; System.out.println("Bonne réponse!"); } else { mvrep=mvrep+1; System.out.println("Mauvaise réponse!"); } System.out.println(" "); } else { C = B/A; System.out.println("Quel est le résultat de: "+ B +" / "+ A +" ?"); reponse = read.nextDouble(); if(reponse==C) { bnrep=bnrep+1; System.out.println("Bonne réponse!"); } else { mvrep=mvrep+1; System.out.println("Mauvaise réponse!"); } System.out.println(" "); } if (bnrep<1) { System.out.println("----------------------------------"); System.out.println("Veuillez recommencer."); } } break; } } totbnrep=totbnrep+bnrep; totmvrep=totmvrep+mvrep; } read.close(); System.out.println("----------------------------------"); System.out.println(" "); System.out.println("Merci d'avoir participé " + nom + " !"); System.out.println(" "); System.out.println("Total de bonnes réponses: "+totbnrep); System.out.println("Total de mauvaises réponses: "+totmvrep); } }
A voir également:
- Java - problème avec des calculs (virgules + exception)
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
Pour la deuxième question : "au moment où l'utilisateur entre un nombre à virgule en utilisant un point, cela ne fonctionne pas", c'est normal. Par définition, un nombre à virgule s'écrit avec une virgule !
Ce sont les anglais qui écrivent avec des points, dans ce cas il faudrait forcer le Scanner à travailler en anglais.
En ce qui concerne les nombres à virgule, je ne veux pas que cela me les change en points, mais que je reçoive un message disant que je ne peux pas utiliser de points, mais des virgules, et que cela recommence le même calcul qu'auparavant. Je comprends pas trop les exceptions, mais c'est elles que je voudrais introduire dans mon code.
Tu peux donc faire :
Cela reboot à l'infini.
Parce que si tu as un bug uniquement sur une partie du code et que les autres fonctionnent alors que ce sont des copier-coller, ça va être compliqué de gérer tes modifications de manières propres s'il faut les multiplier par 8 à chaque fois...