Switch case avec comparaison

Résolu
Mendoza -  
 Mendoza -
Bonsoir,

J'aimerai savoir s'il serait possible de faire une comparaison dans un switch, quelque chose qui ressemblerait à ceci :

switch ()
{
case a>b: a=a-b;break;
case a<b: b=b-a;break;
}

Si c'est possible, que faudra t-il mettre en paramètre dans le switch ?

D'avance, merci.

2 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Non, ce n'est pas possible
    0
  2. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Tu peux faire ta comparaison justement dans le switch

    #include <stdio.h>
    
    #define FALSE 0
    
    int main(void)
    {
        int a = 1;
        int b = 2;
    
        switch (a > b)
        {
        case FALSE:
            /* faux est 0 en C */
            printf("%d est inférieur ou égal à %d\n", a, b);
            break;
        default:
            /* vrai est tout entier autre que 0 */
            printf("%d est supérieur à %d\n", a, b);
            break;
        }
    
        return 0;
    }


    Mais switch / case n'est pas vraiment fait pour cela, ce qui est ci-dessus est une utilisation détournée. C'est mieux d'utiliser des if / else if / else, avec lesquels tu pourras faire plus qu'une seule comparaison.

    Dal
    0
    1. Mendoza
       
      Merci !

      Cette solution me convient parfaitement, c'est surtout pour respecter l'exercice donné par le professeur, sinon j'aurai utilisé un if/else effectivement.
      0
    2. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      OK, cool, de rien. Je suppose que tu ne manqueras pas de dire à ton prof que c'est [Dal] du forum de commentcamarche.net qui t'a donné la réponse (ainsi tu respecteras la licence Creative Commons...) n'est-ce pas ?

      Hehehe, à moi les points :-D !


      Dal
      0
    3. Mendoza
       
      ^^
      0