Switch et case

Fermé
galsen3 Messages postés 314 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 26 novembre 2012 - 16 juin 2009 à 13:53
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 16 juin 2009 à 16:56
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;
A voir également:

4 réponses

Chamicki Messages postés 525 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 20 juillet 2012 73
16 juin 2009 à 13:55
quel langage utilise tu vb ?
0
galsen3 Messages postés 314 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 26 novembre 2012 19
16 juin 2009 à 14:17
langage C
0
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
16 juin 2009 à 16:56
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