Se connecter / S'enregistrer
Votre question

Programmer un mot de passe en java

Tags :
  • Java
  • Programme
  • Programmation
Dernière réponse : dans Programmation
5 Octobre 2011 17:28:08

Salut, Je débute en java (de toute façon vous aller le remarquer) et je voudrais faire une application qui calcul la moyenne d'un certain nombre de chiffres sans savoir combien de nombre elle comprend, je voulais donc faire une boucle "while" qui demande à l'utilisateur de rentrer des chiffres jusqu'à ce que l'utilisateur entre un mot de passe qui va faire se terminer la boucle...
après ça je calcule la moyenne et je lui affiche le résultat, le problème est que, je ne sais pas comment m'y prendre pour faire comprendre au programme que quand je rentre le mot de passe la boucle s'arrête.

Merci d'avance pour votre aide

Autres pages sur : programmer mot passe java

a c 232 L Programmation
5 Octobre 2011 17:42:55

Salut,

Tu fais un while sur la lecture de la console
Chaque élément, tu l'ajoutes dans un tableau de int, sauf si ta valeur est égale à ton mot de passe, dans ce cas tu fais un break de ta boucle.
5 Octobre 2011 19:59:46

OmaR a dit :
Salut,

Tu fais un while sur la lecture de la console
Chaque élément, tu l'ajoutes dans un tableau de int, sauf si ta valeur est égale à ton mot de passe, dans ce cas tu fais un break de ta boucle.


Ton lien ne fonctionne pas, dommage parce que je ne sait pas ce qu'est la lecture console, mais sinon ta démarche marcherait même si le mot de passe est en chaîne de charactère?..

Contenus similaires
a c 232 L Programmation
5 Octobre 2011 21:29:42

Il fonctionne très bien le lien chez moi...

Voilà le code du lien:
  1. import java.util.Scanner;
  2.  
  3. public class InputExp {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. String name;
  8. int age;
  9. Scanner in = new Scanner(System.in);
  10.  
  11. // Reads a single line from the console
  12. // and stores into name variable
  13. name = in.nextLine();
  14.  
  15. // Reads a integer from the console
  16. // and stores into age variable
  17. age=in.nextInt();
  18. in.close();
  19.  
  20. // Prints name and age to the console
  21. System.out.println("Name :"+name);
  22. System.out.println("Age :"+age);
  23.  
  24. }
  25. }


Après, c'est à adapter pour toi, mais ça te montre comment lire les données depuis la console.
6 Octobre 2011 22:21:03

oui, ça je sais comment faire, mon problème c'est que le programme doit comprendre que quand l'utilisateur, au lieu d'entrer un nombre, entre le mot de passe en chaine de charactère (ex:"stop") il doit sortir de la boucle. ce que j'ai essayer de faire c'est un truc du genre:
  1. while (!scanner.hasNextDouble()){
  2. string junk = scanner.next();
  3. if ((scanner.next)=="stop"){
  4. break;
  5. }else{
  6. System.out.print ("Veuillez écrire une valeur numérique: ");
  7. }
  8. }

le tous mis dans une autre boucle while pour que ça boucle jusqu'à ce que l'utilisateur écrive "stop"...
ps: ton lien fonctionne finalement, je sais pas se qui cétait passer la dernière fois (je pouvais même pas acceder au site depuis google)
a c 232 L Programmation
7 Octobre 2011 09:15:14

pseudonyme_disponible a dit :
oui, ça je sais comment faire, mon problème c'est que le programme doit comprendre que quand l'utilisateur, au lieu d'entrer un nombre, entre le mot de passe en chaine de charactère (ex:"stop") il doit sortir de la boucle. ce que j'ai essayer de faire c'est un truc du genre:
while (!scanner.hasNextDouble()){
string junk = scanner.next();
if ((scanner.next)=="stop"){
break;
}else{
System.out.print ("Veuillez écrire une valeur numérique: ");
}
}
le tous mis dans une autre boucle while pour que ça boucle jusqu'à ce que l'utilisateur écrive "stop"...
ps: ton lien fonctionne finalement, je sais pas se qui cétait passer la dernière fois (je pouvais même pas acceder au site depuis google)


Je t'avoue que je ne comprend pas bien ce que tu fais là. Tu veux récupérer un nombre (un double?), pourquoi tu fais une boucle "tant que la valeur donnée n'est pas un double" alors ?

Est-ce que tu pourrais faire voir tout ton code d'un coup ?
8 Octobre 2011 17:48:05

C'est pour gérer les reponse de l'utilisateur, comme ça si tu entre un nombre en lettre ou autre, il y à un message qui boucle jusqu'à ce que tu entre une valeur numérique.... du coup moi j'ai rajouter dans le while que si tu entre la mot "stop" la boucle s'arrête.... Mais sa ne marche pas alors j'ai essayer de le changer de place:
public static void moyenne2(){
//création de l'objet scanner
Scanner leScanner=new Scanner(System.in);
//Création des variables à utiliser
double somme=0;
double ajout=1;
int compteur=0;


/*calcul de la moyenne*/

//Collecte des composantes

while (ajout>=1 || ajout<=0){
compteur++;
System.out.print ("Veuillez entrer une valeur: ");
if ((leScanner.next())=="stop"){
break;
}
//verifier la valeur entrer
while (!leScanner.hasNextDouble()){
String junk = leScanner.next();
System.out.print ("Veuillez entrer une valeur numérique: ");
}
ajout=leScanner.nextDouble();
somme=somme+ajout;
}
//rétablir le compteur au bon compte
compteur=compteur-1;

//Afficher le résultat
System.out.println ("");
System.out.println ("****");
System.out.println ("Le résultat obtenue est: "+(somme/compteur));
System.out.println ("/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/");
}
se n'est pas le main parce que ce code fait partie d'un autre plus gros, mon projet est une genre de "calculatrice" qui pourrait calculer une foule d'autre problème.
a c 232 L Programmation
8 Octobre 2011 19:33:19

pseudonyme-disponible a dit :
C'est pour gérer les reponse de l'utilisateur, comme ça si tu entre un nombre en lettre ou autre, il y à un message qui boucle jusqu'à ce que tu entre une valeur numérique.... du coup moi j'ai rajouter dans le while que si tu entre la mot "stop" la boucle s'arrête.... Mais sa ne marche pas alors j'ai essayer de le changer de place:
public static void moyenne2(){
//création de l'objet scanner
Scanner leScanner=new Scanner(System.in);
//Création des variables à utiliser
double somme=0;
double ajout=1;
int compteur=0;


/*calcul de la moyenne*/

//Collecte des composantes

while (ajout>=1 || ajout<=0){
compteur++;
System.out.print ("Veuillez entrer une valeur: ");
if ((leScanner.next())=="stop"){
break;
}
//verifier la valeur entrer
while (!leScanner.hasNextDouble()){
String junk = leScanner.next();
System.out.print ("Veuillez entrer une valeur numérique: ");
}
ajout=leScanner.nextDouble();
somme=somme+ajout;
}
//rétablir le compteur au bon compte
compteur=compteur-1;

//Afficher le résultat
System.out.println ("");
System.out.println ("****");
System.out.println ("Le résultat obtenue est: "+(somme/compteur));
System.out.println ("/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/");
}
se n'est pas le main parce que ce code fait partie d'un autre plus gros, mon projet est une genre de "calculatrice" qui pourrait calculer une foule d'autre problème.


Le problème, c'est qu'à partir du moment où tu appeles la fonction next() de ton scanner, ça te passe la valeur.
Je pense que tu n'étais pas loin avec ton 1er code:
  1. public static void moyenne2(){
  2. //création de l'objet scanner
  3. Scanner leScanner=new Scanner(System.in);
  4. //Création des variables à utiliser
  5. double somme=0;
  6. double ajout=1;
  7. int compteur=0;
  8.  
  9.  
  10. /*calcul de la moyenne*/
  11.  
  12. //Collecte des composantes
  13.  
  14. mainLoop: while (ajout>=1 || ajout<=0){
  15. compteur++;
  16. System.out.print ("Veuillez entrer une valeur: ");
  17. //verifier la valeur entrer
  18. while (!leScanner.hasNextDouble()){
  19. String junk = leScanner.next();
  20. if (junk == "stop") {
  21. break mainLoop;
  22. }
  23. System.out.print ("Veuillez entrer une valeur numérique: ");
  24. }
  25. ajout=leScanner.nextDouble();
  26. somme=somme+ajout;
  27. }
  28. //rétablir le compteur au bon compte
  29. compteur=compteur-1;
  30.  
  31. //Afficher le résultat
  32. System.out.println ("");
  33. System.out.println ("****");
  34. System.out.println ("Le résultat obtenue est: "+(somme/compteur));
  35. System.out.println ("/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/");
  36. }
11 Octobre 2011 17:24:10

hum... je viens d'essayer ton code, sa ne fonctionne pas, quand j'écris stop, sa me renvoye à "veuillez entrer une valeur numérique: " alors je peux rentrer de valeur à l'infini et la boucle ne se termine jamais... j'ai essayer de mettre le if en dehors de la boucle avec une autre variable String, sans succès. Est-ce que c'est mon code qui est trop compliqué? Y aurait-il un moyen plus simple d'arrivé au même résultat?
a c 232 L Programmation
11 Octobre 2011 17:33:18

pseudonyme__disponible a dit :
hum... je viens d'essayer ton code, sa ne fonctionne pas, quand j'écris stop, sa me renvoye à "veuillez entrer une valeur numérique: " alors je peux rentrer de valeur à l'infini et la boucle ne se termine jamais... j'ai essayer de mettre le if en dehors de la boucle avec une autre variable String, sans succès. Est-ce que c'est mon code qui est trop compliqué? Y aurait-il un moyen plus simple d'arrivé au même résultat?

C'est que ce qui est retourné par scanner.next() lorsque tu tapes "stop" n'est pas égal à "stop".
Alors regarde ce que ça te retourne dans ce cas là, il y a peut être un espace ou un saut de ligne
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS