Switch et case

galsen3 Messages postés 363 Statut Membre -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Chamicki Messages postés 552 Statut Membre 73
     
    quel langage utilise tu vb ?
    0
  2. galsen3 Messages postés 363 Statut Membre 19
     
    langage C
    0
  3. loupius
     
    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.
    0
  4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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.
    0