Boucle while, mauvaise utilisation
Résolu
Edgar Moerman
-
Edgar Moerman -
Edgar Moerman -
Bonjour, je suis en train d'apprendre le code java et j'ai écrit un code sur eclipse, il ne me signal une erreur que je ne comprend pas.
Voici le code en question:
import java.util.Scanner;
public class testwhileperso {
public static void main(String[] arg) {
String mdp;
Scanner sc = new Scanner(System.in);
while (mdp.equals("azerty")) //L'erreur est là <--
{
System.out.println("Mot de passe : ");
mdp = sc.nextLine();
System.out.println("Mot de passe non valide...");
}
System.out.println("Mot de passe valide...");
}
}
Alors que si j'utilise la condition "if" cette même ligne ne contiens pas d'erreur
Merci à vous pour votre aide,
Je pense que KX va répondre comme c'est son taf le java ^^
Voici le code en question:
import java.util.Scanner;
public class testwhileperso {
public static void main(String[] arg) {
String mdp;
Scanner sc = new Scanner(System.in);
while (mdp.equals("azerty")) //L'erreur est là <--
{
System.out.println("Mot de passe : ");
mdp = sc.nextLine();
System.out.println("Mot de passe non valide...");
}
System.out.println("Mot de passe valide...");
}
}
Alors que si j'utilise la condition "if" cette même ligne ne contiens pas d'erreur
Merci à vous pour votre aide,
Je pense que KX va répondre comme c'est son taf le java ^^
A voir également:
- Boucle while, mauvaise utilisation
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Objectif 55 200 quelle utilisation - Forum Photo numérique
- La ressource demandée est en cours d'utilisation - Forum Téléphones & tablettes Android
- Logiciel en Cours d'utilisation ? ✓ - Forum Logiciels
3 réponses
Il me demande de donné une valeur à la variable "mdp" sauf que je voudrais la saisir après au clavier
Merci
Merci
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"));
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.