Menu

Boucle infini [Résolu]

Messages postés
13
Date d'inscription
lundi 20 juillet 2015
Dernière intervention
6 janvier 2019
-
Bonjour,
Je débute les études en informatique et j'essaye de faire des exercices javaScript pour m’entraîner
un des exercices étant de créer un programme gérant un tableau de contact (il y a déjà 2 contacts d’enregistré)
si l'utilisateur rentre 1 il rentre un contact
si il rentre 2 il consulte la liste des contacts de type "noms: <le nom> prénom <le prénom>"
et si il rentre 0 cela stoppe le programme
j'ai pour le moment fait ça

let choix;
let contact=["Carole","Lévisse","Mélodie","Nelsonne"];
console.log("Bienvenue dans le gestionnaire de contact! \n 1 : ajouter un contact. \n 2 : afficher la liste de contact \n ° :quitter");
while(choix!==0){
         choix=prompt("Que voulez vous faire?");
         if(choix==1){
         contact.push(prompt("indique le Prénom"));
         contact.push(prompt("indiquer le Nom"));
         }
         if(choix==2){
                for(let i=0;i<contact.length;i++){
                         if(i%2===0){
                                console.log("prénom: "+contact[i]);
                         }
                        else{
                               console.log("prénom: "+contact[i]);
                        }
               }
        }
}
console.log("au revoir");


EDIT : Ajout des balises de code

le soucis étant que cela crée une boucle infini même si je rentre 0 comme valeur lors du prompt
donc voilà si vous avez une solution ou même une amélioration possible je suis preneur ^^
merci à vous !
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
19620
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
19 janvier 2019
4843
1
Merci
Bonjour,

Juste un détail: tu parles du choix "0" pour quitter mais dans ton code c'est le caractère "°" qui est utilisé dans le message d'accueil.
Perso, je ferais un "while(True)" et dans la boucle je rajouterais un "if (choix==0) {break}"
(ne connaissant pas la syntaxe javascript, je compte sur toi pour la trouver)

Ritchi

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 56234 internautes nous ont dit merci ce mois-ci

maxence973
Messages postés
13
Date d'inscription
lundi 20 juillet 2015
Dernière intervention
6 janvier 2019
-
Ah oui effectivement pour le ° c'est une erreur de frappe c'est bien 0 qu'il faut normalement rentrer
du coups j'ai essayé avec le while(True) et ça a l'air bon merci beaucoup !
Commenter la réponse de _Ritchi_
Messages postés
24082
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2019
2144
1
Merci
Bonjour
ton code est presque bon... le souci c'est qu'un PROMPT retourne une STRING.
Hors.. vérifier avec === ou !== c'est pour la comparaison de valeur ET de type.
Donc soit tu mets tes valeurs entre guillemets
while(choix!=="0"){

soit tu n'utilises qu'un seul = dans le !=
while(choix!=0){

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 56234 internautes nous ont dit merci ce mois-ci

maxence973
Messages postés
13
Date d'inscription
lundi 20 juillet 2015
Dernière intervention
6 janvier 2019
-
Ah oui c'est vraie du coups j'ai mis des guillemets et ça donne ça

let choix;
let contact=["Carole","Lévisse","Mélodie","Nelsonne"];
console.log("Bienvenue dans le gestionnaire de contact! \n 1 : ajouter un contact. \n 2 : afficher la liste de contact \n 0 :quitter");
while(true){
choix=prompt("Que voulez vous faire?");
if(choix=="1"){
contact.push(prompt("indique le Prénom"));
contact.push(prompt("indiquer le Nom"));
}
if(choix=="2"){
for(let i=0;i<contact.length;i++){
if(i%2===0){
console.log("prénom: "+contact[i]);
}
else{
console.log("prénom: "+contact[i]);
}
}
}
if(choix=="0"){
break;
}
}
console.log("au revoir");
Commenter la réponse de jordane45