Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] Problème avec Switch et case

Sujet résolu
    20 avril 2006 à 13:42:16

    Bonjour à tous !

    Je suis actuellement en train d'apprendre le C avec le magnifique (si si, vraiment :) ) tuto de M@teo21. J'en suis au TP sur le jeu du plus ou du moins. J'ai fait pas mal d'ajouts par rapport au programme de base proposé, et notamment, un menu au début qui sert à choisir son niveau de difficulté. Et c'est là qu'apparaît mon problème. Voici mon code :


    // Cas par cas pour chaque niveau de difficulté
    switch (lNiveau_difficulte)
    {
    case 1:
        const long MIN = 1, MAX = 100;
        lNbr_essais = 10;
        break;
    case 2:
        const long MIN = 1, MAX = 100;
        lNbr_essais = 5;
        break;
    case 3:
        const long MIN = 1, MAX = 500;
        lNbr_essais = 5;
        break;
    default:
        printf("Niveau non valide...\n");
    }


    J'utilise Dev C++. Il me dit :

    Citation : Dev-C++

    syntax error before "const"


    Je ne comprends vraiment pas, j'ai beau me relire, je ne vois pas où est le problème :colere: , j'ai pourtant bien respecté la syntaxe.

    Pourriez-vous m'aider svp ?
    Merci d'avance :) !
    • Partager sur Facebook
    • Partager sur Twitter
      20 avril 2006 à 13:47:04

      moi j'aurais déclaré la constante MIN, au début du prog, c'est conseillé. Mais j'sais aps si c'est ça qui te cause ton probleme.
      • Partager sur Facebook
      • Partager sur Twitter
        20 avril 2006 à 14:06:49

        En fait, dans l'état actuel des choses, je ne pouvais pas déclarer la constante au début du programme. Mais de toute façon, je me suis aperçue qu'une constante n'était pas nécessaire, donc je l'ai convertie en variable, et ça a réglé mon problème ;) . Merci donc, nonpoluant :) ! Mais je ne me serais pas douté qu'une déclaration de constante au mauvais endroit pouvait provoquer une erreur comme ça...
        • Partager sur Facebook
        • Partager sur Twitter
          20 avril 2006 à 14:42:58

          Citation : Shadowe


          c'est là qu'apparaît mon problème. Voici mon code :


          // Cas par cas pour chaque niveau de difficulté
          switch (lNiveau_difficulte)
          {
          case 1:
              const long MIN = 1, MAX = 100;

          Une variable doit être définie au début d'un bloc.
          • Partager sur Facebook
          • Partager sur Twitter
          Music only !
            20 avril 2006 à 15:39:13

            Citation : Shadowe

            En fait, dans l'état actuel des choses, je ne pouvais pas déclarer la constante au début du programme.


            Bas, qu'est ce qui peut t'en empecher???
            const long MIN;

            // Cas par cas pour chaque niveau de difficulté
            switch (lNiveau_difficulte)
            {
            case 1:
                MIN = 1, MAX = 100;
                lNbr_essais = 10;
                break;
            case 2:
                MIN = 1, MAX = 100;
                lNbr_essais = 5;
                break;
            case 3:
                MIN = 1, MAX = 500;
                lNbr_essais = 5;
                break;
            default:
                printf("Niveau non valide...\n");
            }

            Ca ne te convient pas ça??
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              20 avril 2006 à 15:41:15

              Si c'est une constante on peut pas la modifier.....
              • Partager sur Facebook
              • Partager sur Twitter
                20 avril 2006 à 15:45:30


                const long MIN = 1;
                long max = 0, lNbr_essais;

                // Cas par cas pour chaque niveau de difficulté
                switch (lNiveau_difficulte)
                {
                case 1:
                    max = 100;
                    lNbr_essais = 10;
                    break;
                case 2:
                    max = 100;
                    lNbr_essais = 5;
                    break;
                case 3:
                    max = 500;
                    lNbr_essais = 5;
                    break;
                default:
                    printf("Niveau non valide...\n");
                }


                Non ?
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  20 avril 2006 à 15:48:01

                  Oui là c'est bon mais le code d'avant était pas bon, y'avait une tentaive de modification de constante: boum
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 avril 2006 à 16:36:24

                    Citation : -ed-

                    Une variable doit être définie au début d'un bloc.


                    Ah d'accord, merci pour l'info :) . Ce que tu appelles un bloc, c'est quelque chose avec des accolades (désolée si c'est une question un peu idiote, mais je débute en C...) ?

                    Autrement, Ze moi a répondu à ma place, c'est effectievement ce que je voulais dire par "dans l'état actuel des choses, je ne pouvais pas déclarer la constante au début du programme.".
                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 avril 2006 à 16:56:02

                      Oui pardon, désolé :) j'me suis mélangé un peu les pinceux. Mais c'est ce que Kl3M a dit que je voulais dire
                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 avril 2006 à 19:45:03

                        Citation : nonpoluant et Kl3M

                        const long MIN;

                        switch (lNiveau_difficulte)
                        {
                        case 1:
                            MIN = 1, MAX = 100;
                        <...>


                        Ca ne te convient pas ça??


                        Vous avez essayé ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Music only !

                        [C] Problème avec Switch et case

                        × 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