Besoin de conseil
Résolu
Thewolf76
Messages postés
37
Statut
Membre
-
Thewolf76 Messages postés 37 Statut Membre -
Thewolf76 Messages postés 37 Statut Membre -
Bonjour j'apprend depuis peut la programmation sous C++, et j'etudie a l'heure actuelle les conditions y comprit les boucles. J'essaie de m'exercer en développant différentes idées. Malheuresement meme si mon programme marche je ne suis pas sur que la facon dont il a était construit est fiable et correct. Pouvez vous m'indiquez ce que vous pensez et les changements à faire, je vous remercie d'avance.
int main()
{
string motDePasse("qsdfg"); // mot de passe différent pour entrer dans la boucle
cout << "Quelle est le mot de passe?" << endl; // énonciation
cin >> motDePasse;
if (motDePasse == "azerty"){} // si conditions vérifié passer à la suite
else // si conditions non vérifié
{
while (motDePasse != "azerty") // répétée jusqu'a ce que la conditions soit vérifié
{
cout << "Le mot de passe entrer est incorrect veuillez réessayer" << endl;
cin >> motDePasse;
}
}
cout << "Bravo le mot de passe est correct" << endl;
}
Le programme fonctionne et me redemande de répeter le mot de passe jusqu'a ce qu'il soit correct
int main()
{
string motDePasse("qsdfg"); // mot de passe différent pour entrer dans la boucle
cout << "Quelle est le mot de passe?" << endl; // énonciation
cin >> motDePasse;
if (motDePasse == "azerty"){} // si conditions vérifié passer à la suite
else // si conditions non vérifié
{
while (motDePasse != "azerty") // répétée jusqu'a ce que la conditions soit vérifié
{
cout << "Le mot de passe entrer est incorrect veuillez réessayer" << endl;
cin >> motDePasse;
}
}
cout << "Bravo le mot de passe est correct" << endl;
}
Le programme fonctionne et me redemande de répeter le mot de passe jusqu'a ce qu'il soit correct
4 réponses
Salut,
En passant outre les fautes d'orthographe ... Ton if est inutile, tu peux simplifier ta boucle :
En passant outre les fautes d'orthographe ... Ton if est inutile, tu peux simplifier ta boucle :
string motDePasse = "";
cin >> motDePasse;
while( "azerty" != motDePasse ) {
cout << "Le mot de passe entré est incorrect veuillez réessayer" << endl;
cin >> motDePasse;
}
cout << "Bravo le mot de passe est correct" << endl;
Je comprend ta logique je t'en remercie, et je m'excuse pour mes fautes d'orthographes. Je pensé si ont utilise une boucle do..while, la boucle passe au moins une fois donc pas besoin d'utiliser de valeur négatif pour entrer dans la boucle non?
Oui, mais tu auras besoin d'une variable en plus afin de stocker le fait que ce soit la première occurrence de la boucle (pour ne pas afficher "Le mot de passe entré etc..." à la première itération ).
L'autre solution avec un do/while serait de faire un double check, mais les deux solutions ne sont pas très élégantes :
Solution1 :
Solution 2:
L'autre solution avec un do/while serait de faire un double check, mais les deux solutions ne sont pas très élégantes :
Solution1 :
string motDePasse = "";
bool isFirstOccurence = true;
do {
if( !isFirstOccurence ) {
cout << "Le mot de passe entré est incorrect veuillez réessayer" << endl;
}
cin >> motDePasse;
isFirstOccurence = false
} while( "azerty" != motDePasse );
Solution 2:
string motDePasse = "";
do {
cin >> motDePasse;
if( "azerty" != motDePasse ) {
cout << "Le mot de passe entré est incorrect veuillez réessayer" << endl;
}
} while( "azerty" != motDePasse );