Switch et case

Bonjour,
j'ai le programme ci-dessous et je veux ituliser les switch case a la place
comment faire?

int avoir_probleme(double a ,int b, double c){
if((b==2)&& (a<5.0))
return 1;
if((b==0))
return 1;
if(b==3)
return 1;
if((b==4)&& (a<5.0))
return 1;
return 0;
Configuration: Linux
Firefox 3.0

4 réponses

  1. Si tu tiens au 'switch/case', on pourrait écrire:
    int avoir_probleme(double a, int b, double c)
    {
      switch (b)
      {
        case 0:
        case 3:
          return 1;
        case 2:
        case 4:
          if (a < 5.0)
            return 1;
      }
      return 0;
    }
    Mais c'est quand même plus facile avec 'if' (et probablement plus rapide)
    int avoir_probleme(double a, int b, double c)
    {
      if ( (b == 0) || (b == 3) ||
           ( ((b == 2) || (b == 4)) && (a < 5.0) ) )
        return 1;
      return 0;
    }

    Bon choix.
    1. Contributeur
      avec que des switch :
      int avoir_probleme(double a, int b, double c)
      {
        switch (b)
        {
          case 0:
          case 3:
            return 1;
          case 2:
          case 4:
            switch(a < 5.0)
              {
              case true:  return 1;
              case false : return 0;
              }
        }
        return 0;
      }

      ou alors sans "if" ni switch et encore plus court
      int avoir_probleme(double a, int b, double c)
      {
           return ( (b == 0) || (b == 3) || ( ((b == 2) || (b == 4)) && (a < 5.0) ) )?1:0;
      }
      Mais en réfléchissant, je suis sur qu'on peut faire plus court et plus illisible, en utilisant des masques par exemple.