Boucle while, mauvaise utilisation
Résolu/Fermé
A voir également:
- Boucle while, mauvaise utilisation
- Notice d'utilisation - Guide
- Bash do while ✓ - Forum Shell
- Factorielle en c boucle while - Forum C
- Mon pc s'allume et s'éteint en boucle - Forum Matériel informatique
- Utilisation chromecast - Guide
3 réponses
NHenry
Messages postés
15049
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 mars 2023
331
7 sept. 2017 à 20:43
7 sept. 2017 à 20:43
Quel message d'erreur ?
Il me demande de donné une valeur à la variable "mdp" sauf que je voudrais la saisir après au clavier
Merci
Merci
NHenry
Messages postés
15049
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 mars 2023
331
7 sept. 2017 à 20:48
7 sept. 2017 à 20:48
Donnes-lui une valeur par défaut différente de celle attendu.
NHenry
Messages postés
15049
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 mars 2023
331
Modifié le 7 sept. 2017 à 21:51
Modifié le 7 sept. 2017 à 21:51
Oui, tu boucle tant que le MDP est bon ...
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 004
7 sept. 2017 à 22:40
7 sept. 2017 à 22:40
Bonjour,
Le mieux dans ton cas est d'utiliser une boucle do/while, ça t'évite la première initialisation qui ne sert à rien.
Mais sinon pour utiliser la négation d'une condition tu as l'opérateur
Le mieux dans ton cas est d'utiliser une boucle do/while, ça t'évite la première initialisation qui ne sert à rien.
Mais sinon pour utiliser la négation d'une condition tu as l'opérateur
!(prononcer "not" ou "pas")
do { System.out.println("Mot de passe : "); mdp = sc.nextLine(); } while (!mdp.equals("azerty"));
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 004
7 sept. 2017 à 23:24
7 sept. 2017 à 23:24
Si tu prends ton code de départ, Eclipse te souligne en rouge
Il faut lui en donner une (n'importe laquelle sauf "azerty") pour pouvoir évaluer une première fois ta condition de boucle.
Cela va donc faire un calcul inutile vu que l'on sait très bien que la condition sera toujours fausse la première fois... D'où l'intérêt du do/while qui n'évalue la condition qu'après avoir fait tourner la boucle au moins une fois.
mdp.equals("azerty")en te disant que
mdpn'est pas initialisé, c'est à dire qu'il n'a pas de valeur.
Il faut lui en donner une (n'importe laquelle sauf "azerty") pour pouvoir évaluer une première fois ta condition de boucle.
String mdp = "inutile"; while (!mdp.equals("azerty")) {
Cela va donc faire un calcul inutile vu que l'on sait très bien que la condition sera toujours fausse la première fois... D'où l'intérêt du do/while qui n'évalue la condition qu'après avoir fait tourner la boucle au moins une fois.