Switch case avec comparaison

Résolu/Fermé
Mendoza - 7 janv. 2014 à 00:20
 Mendoza - 7 janv. 2014 à 20:15
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.
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
7 janv. 2014 à 09:33
Non, ce n'est pas possible
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 7/01/2014 à 10:30
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
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
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
7 janv. 2014 à 12:44
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
^^
0