Ma question devrait paraître simple à répondre pour certain, je suis actuellement le cour "Apprendre le langage C", j'en suis rendu au chapitre "Les Conditions" jusque là aucun soucis dans la compréhension de ce cours, je prends mon plaisir à faire des tests en regroupant tout les chapitres précedents.
Mais Bref ma question est pour la condition "switch" est t'il possible d'utiliser des variables comprise en x et x ?
J'ai effectuer ce test avec les conditions " if, else if, else" et aucun problème.
exemple fig.suivante
int age = 0;
printf("\nQuel age avez-vous ?\n\n");
scanf("%d", &age);
if(age == 18) // Si l'age est supérieur ou égal à 18
{
printf("\nTe voila majeur, en avant l'aventure\n");
}
else if (age >= 4 && age <=14 ) // Sinon, si l'âge est au moins supérieur à 4
{
printf("\nEncore des annees a l'ecole, ETUDIE pour TON avenir!! \n");
}
else if (age >=15 && age <=17)
{
printf("\nLes annees rebelle, Fais attention à toi avant tout\n");
}
Mais quand je fait le test avec la condition "switch", j'ai un code erreur quand je compile qui vient probablement de ma variable à plusieur conditions, mais sa fonctionne trés bien en conditon "if".
exemple fig.suivant
int age = 0;
printf("Quel age avez-vous ?\n");
scanf("%d", &age);
switch (age)
{
case >=1 && <=4:
printf("\nSalut Bebe !\n");
break;
case >=5 && <=10:
printf("\nSalut Gamin !\n");
break;
case >=11 && <=14:
printf("\nSalut Jeune !\n");
break;
case >=15 && <=17:
printf("\nSalut l'Ado !\n");
break;
Désolé si mon sujet est trés long, je ne savait pas comment expliquer mon soucis, en espèrant avoir été assez clair. Merci d'avance.
désolé pour toi mais en C ce qui suit le case doit etre un entier et non pas une condition, donc ça :
switch ( x )
{
case 0:
case 1:
break;
default:
}
tu peux le faire, mais ton code non.
Si tu veux ecrire ton code avec un switch tu peux le faire comme suis :
int age = 0;
printf("Quel age avez-vous ?\n");
scanf("%d", &age);
switch (age)
{
case 1:
case 2:
case 3:
case 4:
printf("\nSalut Bebe !\n");
break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
printf("\nSalut Gamin !\n");
break;
case 11:
case 12:
case 13:
case 14:
printf("\nSalut Jeune !\n");
break;
case 15:
case 16:
case 17:
printf("\nSalut l'Ado !\n");
break;
}
la connaissance est une chose qui ne nous appauvrit pas quand on la partage.
Le switch permet d'orienter un choix à partir de valeurs prédictibles (au moins envisageables) et si possible plutôt limitées en nombre lors de la programmation. La valeur que l'on met dans les "case" doit toujours être réductible à un entier constant (∈ℤ). Il n'est pas possible d'y mettre du code, des tests, ni-même de calcul (sur des variables, "5+1" est une constante). Sinon, il n'y a plus de prédiction possible et le switch perd tout son intérêt.
Dans l'exemple que tu donnes, la série de test est sans aucun doute le choix à faire.
Maintenant, il peut arriver que l'on ait besoin de regrouper 2 ou plusieurs résultats, cela reste donc possible. Par exemple pour un lancer de dé :
switch (de)
{
case 1:
case 2:
case 3:
printf("une valeur de 1 à 3\n");
break;
case 4:
case 5:
case 6:
printf("une valeur de 4 à 6\n");
break;
}
Bon, ce n'est pas ce qu'il faudrait faire, mais tu vois qu'il est possible d'orienter 2 valeurs ou plus vers la même portion de code.
En l'absence de coupure (break;) le code est exécuté à la suite, donc le cas suivant. Par exemple le jeu consiste à faire entre 4 et 6 au dé pour gagner et rester dans la course. Aussi, je veux ajouter du suspens quand on fait juste 4 :
switch (de)
{
case 4:
printf("Suspens.. !!!\n");
case 5:
case 6:
printf("Bravo, tu peux continuer !\n");
break;
default:
printf("Perdu, tu es éliminé !\n");
break;
}
Je te laisse imaginer ce que ça donnerait avec ton exemple, ce ne serait pas très élégant.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
la connaissance est une chose qui ne nous appauvrit pas quand on la partage.
Mon GitHub
Bonhomme !! | Jeu de plateforme : Prototype.
Bonhomme !! | Jeu de plateforme : Prototype.
la connaissance est une chose qui ne nous appauvrit pas quand on la partage.
Mon GitHub
Bonhomme !! | Jeu de plateforme : Prototype.