Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de boucle do while

Sujet résolu
    6 décembre 2018 à 13:47:14

    Bonjour,

    Je souhaiterais mettre en oeuvre un switch et une boucle do while pour un mini menu à 3 options via un prompt. 
    Le menu est basé comme ceci :
    1) 1- Frites
    2) 2- Pizzas
    3) 3- Exit 

    Donc le but est simple, l'utilisateur saisie une option; on va dire la une par exemple et un message texte s'affichera en html lui disant qu'il est sur l'option 1.

    Ensuite, c'est pas terminé la boîte de dialogue (le prompt) lui re-propose les options du menu (les 3 options), on va sélectionner l'option 2, qui est pizzas et là un message s'affiche en html => "option 2" 

    Le prompt réapparait et me propose encore différentes options je choisis la 3 ème, le programme se coupe.

    Voici mon code sauf que j'ai un soucis avec ma boucle do while, elle ne s'arrête jamais... 


    <!DOCTYPE html>
    <html>
    <head>
     
    <script type="text/javascript">
     
    var choice = 0;
     
    function main()
    {
    	do{
    		document.write("*****MENU******" + "<br>");
    		document.write("1)- Frites .");
    		document.write("2)- Pizza .");
    		choice = parseInt(prompt("Entrer votre choix svp : "));
     
    		switch(choice){
    			case 1:
    				document.write("Option 1 " + "<br>");
    			break;
     
    			case 2:
    				document.write("Option 2 " + "<br>");
    			break;
     
    		}
     
    	}while(choice != 3);
    }
     
    </script>
     
    <body onload="main()">
    	<center>
    			<h2>Exercice </h2>
    	</center>
     
    </body>
     
     
    </head>
     
     
    </html>



    • Partager sur Facebook
    • Partager sur Twitter
      6 décembre 2018 à 14:22:30

      Bonjour,

      pour arrêter la boucle, il faut que la variable choice soit égale à 3. ligne 15, tu affecte la choix de l'utilisateur à la variable choice (donc c'est soit 1, soit 2 en théorie). Donc ta boucle ne s'arrête jamais.


      • Partager sur Facebook
      • Partager sur Twitter
        6 décembre 2018 à 14:48:13

        Bojour,

        Je n'y arrive toujours pas, je pense que ce que je souhaite faire est impossible en js?

        • Partager sur Facebook
        • Partager sur Twitter
          6 décembre 2018 à 15:20:39

          function main()
          {
              for(var i = 0; i < 3; i++){
                  document.write("*****MENU******" + "<br>");
                  document.write("1)- Frites .");
                  document.write("2)- Pizza .");
                  choice = parseInt(prompt("Entrer votre choix svp : "));
            
                  switch(choice){
                      case 1:
                          document.write("Option 1 " + "<br>");
                      break;
            
                      case 2:
                          document.write("Option 2 " + "<br>");
                      break;
            
                  }
            
              }
          }

          un truc comme ça "marche" mais ce n'est pas très joli.

          un truc comme ça c'est plus joli : https://jsfiddle.net/hxw8pcdr/

          -
          Edité par piero5673 6 décembre 2018 à 15:33:20

          • Partager sur Facebook
          • Partager sur Twitter
            6 décembre 2018 à 16:15:12

            Hello piero5673,

            Je te remercie, je vais plutôt prendre ton second code effectivement c'es plus jolie, merci encore.

            • Partager sur Facebook
            • Partager sur Twitter

            Problème de boucle do while

            × 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