Partage

Solution activité 2

2 janvier 2018 à 19:01:05

salut tout le monde je suis sur un exo et j'arrive pas a avancé là est ce que quelqu'un(e) peut  me dire pourquoi le break de la boucle while ne passe pas. Merci
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Contacts</title>
    <script>
      /*
       Chaque contact a un nom et un prénom.
       Le programme gère un tableau de contacts et offre
       à l’utilisateur le choix entre les fonctionnalités suivantes :
        •Afficher chaque contact du tableau.
        •Quitter
       Le programme doit “boucler” jusqu’à ce que l’utilisateur choisisse de quitter.
       Il doit également utiliser des objets pour gérer les contacts.
       Les deux contacts à insérer initialement dans le tableau sont :
        •Carole Lévisse
        •Mélodie Nelsonne
       Pour obtenir le maximum de points possibles,
       ajoutez la possibilité pour l’utilisateur de saisir un nouveau contact
       qui sera inséré dans le tableau.
       */
        var Contact = {
          // Initialise le contact
          init: function (nom, prenom) {
            this.nom = nom;
            this.prenom = prenom;
          },
          decrire: function () {
            var description = this.nom + " " + this.prenom;
            return description;
          }
        };
        var contact1 = Object.create(Contact);
        contact1.init ("Carole", "Lévisse");
        var contact2 = Object.create(Contact);
        contact2.init ("Mélodie", "Nelsonne");
        // tableau
        var contacts = [];
        // Ajout des deux contacts
        contacts.push(contact1);
        contacts.push(contact2);
        // nouveau contacts
        var nouveauContact = "";
        confirm("Ajoutez un nouveau contact;")
            while (true) {
              var nom = prompt("Entrez un nom !"), prenom = prompt("Entrez un prénom !");
              var nouveauContact = Object.create(Contact);
              nouveauContact.init (nom, prenom);
              } if (nouveauContact) {
                contacts.push(nouveauContact);
              } else {
                break;
              }
            };
        Contact.decrire = function () {
          return this.nom + " " + this.prenom;
        }
        for (var i = 0; i < contacts.length; i++) {
          console.log(contacts[i].decrire());
        };
    </script>
  </head>
  <body>
  </body>
</html>
"anegnôn, egnôn, categnôn"

Vous êtes demandeur d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur web junior

Je postule
Formation
en ligne
Financée
à 100%
2 janvier 2018 à 19:10:44

Bonjour,

Le break n'est jamais appelé car  if (nouveauContact) renverra toujours true.

Dans quel cas tu veux qu'il s'arrete ?

Si vous voulez me mp, venez sur Discord (username: Stelyus#8984)
2 janvier 2018 à 19:17:26

Je veut que le programme se break si l'utilisateur n'entre rien. S'il décide d'annuler le confirm();
"anegnôn, egnôn, categnôn"
2 janvier 2018 à 19:27:38

while (true) {
              var nom = prompt("Entrez un nom !")
              if (nom == null) break;
              var prenom = prompt("Entrez un prénom !");
              if (premom == null) break;

              var nouveauContact = Object.create(Contact);
              nouveauContact.init (nom, prenom);
              contacts.push(nouveauContact);
            };

A chaque fois qu'il y a prompt tu regardes si la valeur est null si c'est null alors l'utilisateur a cliqué sur annuler
Si vous voulez me mp, venez sur Discord (username: Stelyus#8984)
2 janvier 2018 à 19:37:14

Okey donc pour faire plus simple on vérifie si l'utilisateur veut continuer a chaque fois qu'il entre une information et après on crée l'objet pour traiter les infos. Merci de t'on aide.;)
"anegnôn, egnôn, categnôn"

Solution activité 2

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
  • Editeur
  • Markdown