Problème Switch

Résolu
Lucky Lucke -  
 Lucky Lucke -
Bonjour,
Je débute en programmation et la j'ai concocté un programme qui demande l'age et qui dit une phrase en fonction de l'âge.Mais voilà, je crois que j'ai fais une erreur : je veux mettre plusieurs "âges" pour la même case. J'ai pensé bien faire en mettant des || entre chaque "âge" mais ça me met deux erreurs : error: duplicate case value et error: previously used here.

Donc voilà mon programme(dsl j'ai pas mis de commentaires) :


#include <stdio.h>
#include <stdlib.h>

int main()
{
long age = 0;
Printf("Quel age as-tu? ");
scanf("%ld\n", age);

switch (age)
{
case 1 || 2 || 3 || 4 || 5:
printf("Ouiin, ouiinn!");
break;
case 6 || 7 || 8 || 9 || 10:
printf("Petit morveux!");
break;
case 11 || 12 || 13 || 14 || 15:
printf("Tu n'es qu'un ado!");
break;
case 16 || 17 || 18 || 19 || 20 || 21 || 22 || 23 || 24:
printf("Tu es encore jeune!");
break;
case 25 || 26 || 27 || 29 || 28 || 30 || 31 || 32 || 33:
printf("Tu es un grand homme maintenant!");
break;
case 34 || 35 || 36 || 37 || 38 || 39 || 40 || 41 || 42 || 43 || 44 || 45 || 46 || 47 || 48 || 49:
printf("Tu n'es plus dans la fleur de l'age!");
break;
case 50 || 51 || 52 || 53 || 54 || 55 || 56 || 57 || 58 || 60 || 61 || 62 || 63 || 64 || 65 || 66 || 67 || 68 || 69 || 70:
printf("Tu es un senior!");
break;
case 59:
printf("Coucou papa!");
break;
default:
printf("Tu es un vieux papy ma parole!");
break;
}


return 0;
}
A voir également:

4 réponses

Lucky Lucke
 
Up =)
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
ça marche pas comme ça si tuveux plusieur case pour une seul instruction c'est plutot comme ça
case 1:
case 2:
case 3:
case 4:
case 5: printf("Ouiin, ouiinn!");
break;
0
Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   329
 
Bonsoir,
Dans le cas où c'est des conditions qui se suivent (comme ici), tu peux volontairement oublier le break. Si ce n'est pas le cas, il te faudra alors créer une fonction à appeler dans chaque cas afin de factoriser le code un minimum.

#include <stdio.h>
#include <stdlib.h>

int main()
{
long age = 0;
Printf("Quel age as-tu? ");
scanf("%ld\n", age);

switch (age)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("Ouiin, ouiinn!");
break;
case 6:
case 7:
case 8:
case 9:
case 10:
printf("Petit morveux!");
break;
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
printf("Tu n'es qu'un ado!");
break;
case 16:
case 17:
case 18:
case 19:
case 20:
case 21:
case 22:
case 23:
case 24:
printf("Tu es encore jeune!");
break;

//à finir ;)

case 59:
printf("Coucou papa!");
break;
default:
printf("Tu es un vieux papy ma parole!");
break;
}
return 0;
}


Dans ce cas, il est tout de même préférable d'utiliser des conditions plutôt que d'énumérer la centaine de cas possibles...

Cordialement,
0
Lucky Lucke
 
Merci à vous deux vous m'avez bien aidé =)
0