Condition else if en C
jason-live
Messages postés
178
Date d'inscription
Statut
Membre
Dernière intervention
-
yaya -
yaya -
Bonjour, voici mon code :
Quand j'entre le nombre 40 ou + il y a marqué vous êtes majeur or ce n'est pas ce que j'ai demandé dans mon programme :(
Pouvez-vous m'aidez svp merci :D
#include <stdio.h> #include <stdlib.h> int main() { int age =0; printf("Tapez votre age vous verifier si vous ete majeur!\n"); scanf ("%d", &age); if (age >= 18) { printf ("Vous ete majeur\n"); } else if (age<18 && age>=11) { printf ("Vous ete en periode d'adolescence \n"); } else if (age >= 40) { printf ("Vous commencez a etre vieux !\n"); } else if (age<=10 && age>=3) { printf ("Vous n etes qu'un enfant ! \n"); } return 0; }
Quand j'entre le nombre 40 ou + il y a marqué vous êtes majeur or ce n'est pas ce que j'ai demandé dans mon programme :(
Pouvez-vous m'aidez svp merci :D
A voir également:
- Condition else if en C
- Excel cellule couleur si condition texte - Guide
- Excel condition ou - Guide
- Excel soustraction avec condition ✓ - Forum Excel
- Condition optimale téléphone ✓ - Forum Mobile
- If exist ✓ - Forum Autoit / batch
6 réponses
Salut
Imaginons que tu aies un groupe de personnes toutes tranches d'âge confondues. Tu vas d'abord demander à tous ceux d'au moins 18 ans de se placer dans une pièce d'où ils ne peuvent sortir. Tu feras la même chose avec ceux entre 11 et 18 dans une autre pièce et ceux entre 3 et 10 dans une troisième pièce. Quand tu appelleras ceux qui ont 40 ans, il n'y aura plus personne car ils seront déjà avec ceux de plus de 18! Il faut donc commencer par appeler ceux qui ont entre 18 et 40 ans non compris, et là les séniors attendront d'être appelés.
=> Si tu entres 40, 40>=18 donc il va exécuter la première condition
Et il va sauter toutes les autres commencées par else. Pour les plus vieux que 40 ans, il faut que tu modifies ta première condition de
en
pour que si tu rentres 40, il ne prenne pas le 1er bout de code printf("Vous êtes majeur") mais celui réservé aux seniors.
Voilà, en espérant t'avoir aidé
coco_83
Imaginons que tu aies un groupe de personnes toutes tranches d'âge confondues. Tu vas d'abord demander à tous ceux d'au moins 18 ans de se placer dans une pièce d'où ils ne peuvent sortir. Tu feras la même chose avec ceux entre 11 et 18 dans une autre pièce et ceux entre 3 et 10 dans une troisième pièce. Quand tu appelleras ceux qui ont 40 ans, il n'y aura plus personne car ils seront déjà avec ceux de plus de 18! Il faut donc commencer par appeler ceux qui ont entre 18 et 40 ans non compris, et là les séniors attendront d'être appelés.
=> Si tu entres 40, 40>=18 donc il va exécuter la première condition
printf ("Vous ete majeur\n");
Et il va sauter toutes les autres commencées par else. Pour les plus vieux que 40 ans, il faut que tu modifies ta première condition de
if(age>=18)
en
if(age>=18 && age <40)
pour que si tu rentres 40, il ne prenne pas le 1er bout de code printf("Vous êtes majeur") mais celui réservé aux seniors.
Voilà, en espérant t'avoir aidé
coco_83
au lieu d'utiliser tout ces if et else if... pourquoi ne pas utiliser des case vu que c'est des entiers?
genre :
ça simplifie le code, la lecture et la compréhension!
genre :
switch(age) { case (age >=40){ printf(); case(age >=18 && age <40) : printf(); etc...
ça simplifie le code, la lecture et la compréhension!
Bonjour,
Pourquoi imbrique tu tes IF ?
Si tu fais des tests successif sans les imbriquer, sa devrait fonctionner peu importe par quelle tranche d'age tu commence.
Si tu souhaite absolument imbriquer, la solution de coco_83 me paraît bien.
Mr_Hooligan
Pourquoi imbrique tu tes IF ?
Si tu fais des tests successif sans les imbriquer, sa devrait fonctionner peu importe par quelle tranche d'age tu commence.
Si tu souhaite absolument imbriquer, la solution de coco_83 me paraît bien.
Mr_Hooligan
Moi j'évite les switch dans ce genre de cas là, les switch je les réserve aux messages passés dans mon applicaiton (avec les headers). Car on ne sait jamais à quel résultat s'attendre et quand on oublie de mettre default, ben ca foire!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait ce qui me gène c'est plutôt tout ces "else if" ... :p je trouve que ça alourdit le code!
dans ce cas, faire plutôt que des if...
dans ce cas, faire plutôt que des if...
if (age >= 40) { printf ("Vous commencez a etre vieux !\n"); } if (age >= 18 && age <40) { printf ("Vous ete majeur\n"); } if (age<18 && age>=11) { printf ("Vous ete en periode d'adolescence \n"); } if (age<11 && age>=3) { printf ("Vous n etes qu'un enfant ! \n"); }
Bonjour
Je suis dans un cas assez similaire!!!!
On m'indique une erreur que je ne comprend pas!!!
#include <stdio.h>
#include <stdlib.h>
int main()
{
int age = 0;
printf("quel age a tu?\n\n");
scanf("%d", &age);
printf("a vous avez %d an\n\n", age);
if (age >= 18)
{
printf("vous ete majeur\n\n");
}
else (age <= 18)
{
printf("a vous ete mineur");
}
return 0;
}
(le code fonctionne qvec un ; apres la ligne else)
merci
Je suis dans un cas assez similaire!!!!
On m'indique une erreur que je ne comprend pas!!!
#include <stdio.h>
#include <stdlib.h>
int main()
{
int age = 0;
printf("quel age a tu?\n\n");
scanf("%d", &age);
printf("a vous avez %d an\n\n", age);
if (age >= 18)
{
printf("vous ete majeur\n\n");
}
else (age <= 18)
{
printf("a vous ete mineur");
}
return 0;
}
(le code fonctionne qvec un ; apres la ligne else)
merci