Partage
  • Partager sur Facebook
  • Partager sur Twitter

Switch

Ou?

    14 juin 2006 à 18:19:41

    Y a t il moyen de dire "ou" avec un switch?
    (comme pour : if(...||...))
    merci.
    • Partager sur Facebook
    • Partager sur Twitter
      14 juin 2006 à 18:28:17

      il suffit de séparer tes cas sans break :

      switch(variable)
      {
         case 1:
         case 2:
         case 3:
             //instructions
         break;
         case 4:
             //instructions
         break;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        14 juin 2006 à 18:28:19

        Normalement je crois que si tu ne met pas de break a la fin d'un case il exécute aussi le suivant comme dans cet exemple 1 et 2 font la même chose :
        switch (variable)
        {
            case 1:
            case 2:
                instructions pour les cases 1 et 2;
                break;
            default:
                break;
        }


        Ce code n'a pas été testé (je suis préssé désolé), il est probable qu'il ne soit pas recommandé de faire cela. A voir avec quelqu'un d'autre de plus compétent que moi.


        [Edit] : Grilled ! Bon j'ai rien dit !
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          15 juin 2006 à 1:09:12

          Je crois que vois faites erreur, le break est obligatoire avant une autre case, et si c'est le cas 1 ... c'est pas le cas 2, on peux pas passer par 2 cas successifs donc aucun rapport avec le "ou", la c'est juste un flémmard :lol: et il veux pas copier coller sont code pour les autres cas.
          • Partager sur Facebook
          • Partager sur Twitter
            15 juin 2006 à 4:50:02

            Bah tu peux créer une autre case contenant les mêmes instructions que l'autre.

            Tu fais seulement un copier-coller ^^
            • Partager sur Facebook
            • Partager sur Twitter
              15 juin 2006 à 6:55:19

              Je te conseil d'oublier le switch pour ces cas.
              • Partager sur Facebook
              • Partager sur Twitter
                15 juin 2006 à 8:53:08

                Citation : hokkos

                Je crois que vois faites erreur,


                Non.

                L'usage décrit de switch-case pour faire un OU est tout à fait correct et d'un usage fréquent.
                • Partager sur Facebook
                • Partager sur Twitter
                Music only !
                  15 juin 2006 à 9:03:59

                  Citation : cours+livre sur le C

                  L'absence de break; entre deux instructions case continue l'exécution sur le cas suivant,ce qui permet de spécifier plusieurs valeurs pour une même série d'instructions.




                  #include<stdio.h>

                  int main(void)
                  {
                     int n;

                     printf("donnez un entier : ");
                     scanf("%d",&n); /*c'est pour l'exemple : scanf() est déconseillée*/

                     switch (n)
                     {
                        case 0:
                           printf("nul\n");
                        break;
                        case 1:
                        case 2:
                           printf("petit\n");
                        break;
                        case 3:
                        case 4:
                        case 5:
                           printf("moyen\n");
                        break;
                        default:
                           printf("grand\n");
                     }
                  }


                  Je sais que l'exemple est pas extra mais on y va bien ce qui se passe.

                  [edit] : merci -ed- :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 juin 2006 à 20:44:56

                    Merci de vos nombreuses reponses, j'avais fait un copier/coller en attendant mais je trouve que ca encombre le script.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    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