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;
A voir également:

4 réponses

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