Programmer un mot de passe en java

Fermé
Bibby - 4 oct. 2011 à 00:10
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 5 oct. 2011 à 18:11
Salut, Je début 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 (ex: stop , ou n'importe quoi d'autre) qui va faire se terminer la boucle...

après ça je calcule la moyenne et je lui affiche le résultat (mais pour ça j'ai pas de problème :P)

Merci d'avance pour votre aide
A voir également:

2 réponses

EminoMeneko Messages postés 2435 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
4 oct. 2011 à 01:00
Il se situe où exactement le problème alors ?
Déjà pour le chiffre vu que tu veux terminer la boucle lorsque tu écris un mot-clé c'est que tu dois travailler avec des chaînes de caractères.
Ensuite il faudra transtyper tes chiffres pour les traiter. Donc je vois bien la vérification qui consiste à savoir si ta chaîne est bien un chiffre ou un nombre valide.
0
oops... voila le probleme est que je ne sais pas comment faire pour que mon programme comprenne que quand l'utilisateur écrit «stop» il faut arrêter la boucle.
0
EminoMeneko Messages postés 2435 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318 > Bibby
4 oct. 2011 à 01:51
Ben dans ce cas inspires toi de ce que j'ai écris dans mon précédent message. Je te laisse réfléchir un peu. Relis plusieurs fois mon message pour bien le comprendre. C'est souvent nécessaire au début, y'a pas de honte à ça. Aller si tu veux je peut te confier que j'ai du relire plusieurs fois les paragraphes qui parlaient des fonctions quand j'ai commencé la programmation et pourtant c'est une notion enfantine une fois qu'on a compris.
Plus tu utilises ta tête et plus elle te servira.
0
hum..... eh bien ça m'aide pas beaucoup tous sa....
premièrement: c'est quoi les "paragraphes qui parlaient des fonctions"?
deuxièmement: je comprend rien à ton précédent message.... transtyper mes chiffre pour les traiter?
troisièmement: je vois pas de quoi je devrais avoir honte
quatrièmement: en gros moi ce que j'ai essayer de faire c'est:
while (!scanner.hasNextDouble()){
string junk = scanner.next();
if ((scanner.next)="stop"){
break;
}else{
System.out.print ("Veuillez écrire une valeur numérique: ");
}
}
sa mécris une erreur "unexpected type"
Pour se servir de sa tête, il faut dabors un support.
0
EminoMeneko Messages postés 2435 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
Modifié par EminoMeneko le 4/10/2011 à 15:04
J'ai le sentiment que tu ne comprend pas bien ce que j'ai écris en effet.
Le transtypage c'est le terme utilisé pour parler de conversion d'un type de donnée à un autre.
Donc il s'agit dans ton cas te convertir des chaînes de caractères (String) vers des entiers (int et/ou classe enveloppe -ou objet si tu préfères - Integer).

Par exemple tu as ce code qui récupère dans une variable un entier issue d'une chaîne de caractères.
String strNombre = "52";   
int nNombre = Integer.parseInt(strNombre);   


C'est ça un transtypage.
Tu peux aussi transtyper entre types similaires ou des objets (des classes si tu préfères).

Par exemple (il y a bien sûr des conditions évidente de limite des types) tu peux convertir un entier (int) en flottant (float) ou un entier (int) en octet (byte);

int nNombre = 23;   
float fNombre = (float) nNombre,   
byte byNombre = (byte) nNombre;   


Enfin c'est pour l'exemple y'a pas d'intérêt à caster (transtyper si tu préfères. On en profites pour te donner un peu de vocabulaire) de int vers float parce que la conversion sera implicite. par contre dans l'autre sens (float vers int) c'est déjà plus utile.

Je te recommande un peu de lecture qui t'expliquera ça bien mieux que moi. Il y a aussi des choses intéressantes à voir sur CCM. Le support est là.

Sinon il va falloir réviser ton algo.
Normal que tu es cette erreur. On attend un double et tu renvois un String.
En plus dans le if tu as oublié un = la comparaison en Java se fait avec 2 = comme en C par exemple :
if (element1 == element2) {...}

Du coup tu affectes la valeur "Stop" qui est de type String dans un élément qui est sensé être de type double, non ?
Bon courage.
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
Modifié par KX le 4/10/2011 à 07:40
Quel rapport entre ton problème et le titre "programmer un mot de passe en Java" ?
Pour taper un mode de passe en mode console tu peux utiliser Console.readPassword()

Console console = System.console(); 
 if (console==null) 
    throw new Exception("Mode console obligatoire !"); 
  
System.out.print("Mot de passe : "); 
String passwd = new String(console.readPassword()); 
  
System.out.println("Mot de passe : "+passwd);
La confiance n'exclut pas le contrôle
0
EminoMeneko Messages postés 2435 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
4 oct. 2011 à 14:26
Oui le titre est un peu mal choisi. Je m'attendais à devoir parler des JPasswordField. ^^'
0
quel titre j'aurais du choisir alors?.. Si c'est pas un mot de passe je m'y connais pas, c'est un mot que quand il est écrit il se passe quelque chose qui ne peut se passer uniquement si il est écrit.... alors donner moi la différence avec un autre mot de passe?
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
5 oct. 2011 à 18:11
Un mot de passe est quelque chose de secret, que nul ne doit connaitre excepté la personne autorisé. Quand tu vas voir tes emails on te demande un mot de passe pour que personne d'autre ne puisse les voir. Un code de carte bleu peut aussi être considéré comme un mot de passe.
Mais si tu écris "Pour terminer le programme entrer 'stop'", là ce n'est plus du tout un mot de passe, mais plutôt un mot-clé pris en charge par le programme pour un comportement particulier.
0