Switch case avec comparaison [Résolu/Fermé]

Signaler
-
 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

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 705
Non, ce n'est pas possible
Messages postés
5432
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
15 octobre 2020
906
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
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.
Messages postés
5432
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
15 octobre 2020
906
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