Partage
  • Partager sur Facebook
  • Partager sur Twitter

plusieurs possibilités dans un if ou un case

Sujet résolu
Anonyme
    18 décembre 2005 à 18:57:28

    Bonjours je ne trouve pas comment faire pour mettre plusierus possibilités dans un "if" ou dans un "case".

    JE m'explique, par exemple, au lieu de mettre...


    if (age == 2)
    {
      printf("Salut toi !");
    }
    else if (age == 6)
    {
      printf("Salut toi !");
    }
    else if (age == 12)
    {
      printf("Salut toi !");
    }
    else
      printf("Au revoir !");
    {



    ... ne serait-il pas possible de regrouper les 3 premières conditions en 1 seule?

    Merci d'avance, ça m'arranegrais bien! :-°
    • Partager sur Facebook
    • Partager sur Twitter
      18 décembre 2005 à 19:36:53

      Le langage C/C++ mets à ta disposition les opérateurs de conjonction, de disjonction et de négation.

      - L'opérateur && effectue un ET logique entre ses deux opérandes, par exemple : si a et b sont 2 expressions/variables/constantes, l'expression a && b vaut vrai si et seulement si a et b sont respectivement vraies, faux dans tous les autres cas.

      - L'opérateur || effectue un OU logique entre ses deux opérandes, par exemple : si a et b sont 2 expressions/variables/constantes, l'expression a || b vaut faux si et seulement si a et b sont respectivement fausses, vrai dans tous les autres cas.

      - L'opérateur ! effectue la négation logique de son opérande, par exemple si a est une expression/variable/constante, !a vaut vrai si a est faux et vaut faux si a est vraie.

      Donc pour ton exemple, vu que les valeurs 2, 6 et 12 donnent le même résultat, tu peux condenser en disant "si l'age vaut 2 ou s'il vaut 6 ou s'il vaut 12"

      Voila le code correspondant :

      if (age == 2 || age == 6 || age == 12)
      {
        printf("Salut toi !");
      }
      else
      {
        printf("Au revoir !");
      }
      • Partager sur Facebook
      • Partager sur Twitter
        18 décembre 2005 à 19:45:08

        Par contre dans les case des switch c'est uniquement des conditions d'égalité, tu ne peux donc pas faire d'opérateur logiques.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          18 décembre 2005 à 19:58:13

          Je vous remercie. JE ne savais pas (et je n'avais pas penser :euh: ) que l'on pouvait utiliser les opérateur ET et OU dans de tels cas.

          Merci à toi aussi Garuma de m'avoir prévenue que ceci n'était pas possible avec es switchs!

          Merci à vous.

          J'en profite pour demander une autre petit chose, au lieu de créer un nouveau topic :o

          J'ai remarqué que lorsque je mettais un "scanf" dans un "if", un "else if", un "else", ou un "case", ça ne fonctionnait pas.

          J'aimerais donc savoir comment faire pour demander à l'utilsateur d'entrer une valeur si on fait une addtion par exemple, ou de n'en entrer qu'une, si il demande le carré d'un nombre.

          Merci d'avance.
          • Partager sur Facebook
          • Partager sur Twitter
            18 décembre 2005 à 20:04:06

            chaque étiquette 'case' est une égalité oui mais un case n'est qu'un point d'entré dans ton switch.
            Tu peux donc faire un
            switch
            case 2:
            case 6:
            case 12:
            printf
            break
            default:
            printf
            • Partager sur Facebook
            • Partager sur Twitter
              18 décembre 2005 à 20:11:05

              @Kayl : A oui pas bête j'y avais pas pensé

              Si tu pouvais juste mettre le sujet comme résolu. Merci.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                18 décembre 2005 à 20:40:54

                Merci pour l'info Kayl

                Citation : Garuma

                Si tu pouvais juste mettre le sujet comme résolu. Merci.



                C'est à moi de le mettre. Je demande cela parce que sur certains forum, ce sont les modos qui le font. :euh:

                Par contre, j'ai poser une seconde question dans mon 2eme post, en rapport avec les if et les case, pour ne pas recréer de topic.
                • Partager sur Facebook
                • Partager sur Twitter
                  18 décembre 2005 à 21:31:36

                  Peux-tu nous donner le code ou ton scanf ne fonctionne pas s'il te plaît ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    18 décembre 2005 à 21:42:37

                    voili voilou :

                    switch (choixOperation)
                         
                          // si la variable choixMenu vaut 1, 2, 3 ou 4, choisir 2 nombres
                             case 1:
                             case 2:
                             case 3:
                             case 4:
                                  printf("\n\nChoisissez les 2 nombres utiles pour effectuer l'opreration: ");
                                  scanf("%.2f",&nombres);
                                  break;
                          // si la variable choixMenu vaut 5 ou 6, choisir 1 nombre
                             case 5:
                             case     6:
                                  printf("\n\nChoisissez le nombre utile pour effectuer l'operation: ");
                                  scanf("%.2f",&nombre);
                             default:
                                  printf("Mauvais choix. Veuillez redemarre le programme.");


                    Je ne sais pas si tout est faux patce que j'avais commencé à faire ça, mais comme ça ne fonctionnait pas, je suis passé à une autre méthode. :euh:
                    • Partager sur Facebook
                    • Partager sur Twitter

                    plusieurs possibilités dans un if ou un 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