Partage
  • Partager sur Facebook
  • Partager sur Twitter

les conditions : switch

code choixMenu

    1 février 2006 à 10:55:52

    Bonjour tout le monde
    JE SUIS un GROS ZERO alors je ne veux pas passer pour quelqu'un qui se la joue programmeur, mais j'ai utilié le code concernant la fonction switch dans le chapitre des conditions. Et à l'execution, quand j'entre un nombre supérieur à 4 (pour un menu qui presente 4 choix) j'ai le message du default, tout à fait normal. mais quand j'entre une lettre j'ai le choix N° 2.

    Quand on regarde la déclaration de la variable choixMenu elle est comme suit:
    long choixMenu;

    lorsque j'ai rajouté ( =0;):

    long choixMenu =0;

    le programme réagit bien, il n'accepte que les choix 1-4, le reste reçoit l'option default

    alors je me suis demandé si ce n'était pas une omission.
    merci pour votre compréhension.

    PS: juste par curiosité, quand j'entre une lettre le programme m'affiche le choix N°2 pourquoi pas n°1 ou N°4. je n'arrive pas à comprendre pour quelle raison?
    • Partager sur Facebook
    • Partager sur Twitter
      1 février 2006 à 11:01:02

      tu peut montrer le code que tu as fait sinon sa va être dur de t'aider... ;-
      • Partager sur Facebook
      • Partager sur Twitter
        1 février 2006 à 12:16:49

        Salut

        Déjà, si le choixMenu est compris entre 1 et 4, pourquoi déclarer un long ? oO
        Un simple int aurait suffit ;)

        Après, as-tu vérifié d'avoir bien placé tous les break; dans ton switch ?

        Comme l'a dit virtuajeans, un code serait le bienvenu ^^

        ++
        • Partager sur Facebook
        • Partager sur Twitter
          1 février 2006 à 15:53:50

          Salut

          au fait ce n'est pas mon code, c'est plutot un code exemple utilisé par M@teo dans son tutorial. dans le chapitre "les condition" == fonction SWITCH comme je l'ai indiqué dans mon message. j'ai même fait un coupie coller pour être sûr que ça ne vient pas de moi je n'est rien oublié.
          voici le code:
          #include <stdio.h>
          #include <stdlib.h>

          int main(int argc, char *argv[])
          {
          long choixMenu;
          printf("==== Menu ====\n\n");
          printf("1. Royal cheese\n");
          printf("2. Mc de Luxe\n");
          printf("3. Mc Bacon\n");
          printf("4. Big Mac\n");
          printf("\nVotre choix ? ");
          scanf("%ld", &choixMenu);

          printf("\n");

          switch (choixMenu)
          {
          case 1:
          printf("Vous avez choisi un royal cheese");
          break;
          case 2:
          printf("Vous avez choisi un Mc de luxe");
          break;
          case 3:
          printf("Vous avez choisi un Mc Bacon");
          break;
          case 4:
          printf("Vous avez choisi un Big Mac");
          break;

          default:
          printf("Vous devez entrer un choix correcte");
          break;
          }

          printf("\n\n"); //Sauter deux lignes avant dafficher "appruyer sur une touche...


          system("PAUSE");

          }
          • Partager sur Facebook
          • Partager sur Twitter
            2 février 2006 à 15:23:46

            Peut être c'était le lettre correspondant à 2 ;)
            • Partager sur Facebook
            • Partager sur Twitter
              5 février 2006 à 16:54:45

              Citation : rom1504

              Peut être c'était le lettre correspondant à 2 ;)



              mais non. n'importe quelle lettre vous tapez le choix affiché sera toujours le N°2. essayez le code sans (=0;) vous verrez.
              • Partager sur Facebook
              • Partager sur Twitter
                5 février 2006 à 17:05:54

                Tient:

                #include <stdio.h>
                #include <stdlib.h>

                int main(int argc, char *argv[])
                {
                int choixMenu = 0;
                printf("==== Menu ====\n\n");
                printf("1. Royal cheese\n");
                printf("2. Mc de Luxe\n");
                printf("3. Mc Bacon\n");
                printf("4. Big Mac\n");
                printf("\nVotre choix ? ");
                scanf("%d", &choixMenu);

                printf("\n");

                switch (choixMenu)
                {
                case 1:
                printf("Vous avez choisi un royal cheese");
                break;
                case 2:
                printf("Vous avez choisi un Mc de luxe");
                break;
                case 3:
                printf("Vous avez choisi un Mc Bacon");
                break;
                case 4:
                printf("Vous avez choisi un Big Mac");
                break;

                default:
                printf("Vous devez entrer un choix correcte");

                }

                printf("\n\n"); //Sauter deux lignes avant dafficher "appruyer sur une touche...


                system("PAUSE");

                }


                Problèmes?

                1. int et pas long (même si c'est pas important).
                2. Jamais de Break; au default.

                Voilà++
                • Partager sur Facebook
                • Partager sur Twitter
                  9 février 2006 à 20:54:30

                  Je répète pour la n ème fois que ce code ne n'est pas le mien. j'ai fait un coupier coller du CHAPITRE "LES CONDITIONS" sous titre "gérer un menu avec un switch". c'est tout. le break était dedans. Que vous mettez le "break ou pas le programme génére la même reponse à savoir : choix n°2. Ce n'est pas important que se soit un "int" ou un "long" vu que j'ai assez de memoire. le code cité dessus sans avoir initialisé la vadiable choixMenu à (=0;) donne le choix N° 2 comme réponse. Juste par curiosité je voudrais savoir pourquoi cette réponse et pas une autre (vu qu y en a 4 choix...)
                  Merci pour votre patience.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 février 2006 à 20:58:54

                    Ooooh je croyais que tu était poitilleux, j'avais pas bien compris ton problème lol ^^
                    Bah pour être franc: je sais pas =)
                    • Partager sur Facebook
                    • Partager sur Twitter

                    les conditions : switch

                    × 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