A voir également:
- Switch en c++
- Télécharger switch - Télécharger - Conversion & Extraction
- Mod minecraft switch - Forum minecraft
- Samsung smart switch pc - Télécharger - Divers Bureautique
- Meilleurs jeux switch - Guide
- Switch core ✓ - Forum CISCO
2 réponses
_vince
Messages postés
37
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
14 mai 2008
16 avril 2008 à 13:51
16 avril 2008 à 13:51
Tu n'est pas oblige de mettre "default" mais c'est vivement conseille.
Pourquoi ? Si le programme execute le default alors qu'il n'est pas cense, ca veut dire qu'il y a un probleme de logique et que la condition que tu testes prend une valeur inatendue.
Quoi mettre ? A toi de gerer cette valeur inattendue. Tu peux faire que la fonction retourne un code d'erreur, ou mettre un assert(false). A toi de voir ce qui convient a ton programme. Le minimum est d'au moins mettre un commentaire dans le code disant que le programme ne doit pas atteindre le cas par "default". Si c'est vraiment ca que tu veux.
Pourquoi ? Si le programme execute le default alors qu'il n'est pas cense, ca veut dire qu'il y a un probleme de logique et que la condition que tu testes prend une valeur inatendue.
Quoi mettre ? A toi de gerer cette valeur inattendue. Tu peux faire que la fonction retourne un code d'erreur, ou mettre un assert(false). A toi de voir ce qui convient a ton programme. Le minimum est d'au moins mettre un commentaire dans le code disant que le programme ne doit pas atteindre le cas par "default". Si c'est vraiment ca que tu veux.
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
16 avril 2008 à 14:53
16 avril 2008 à 14:53
Bonjour,
Juste un petit mot en passant.
Le if est vrai si abs(F1-F2) / 200 est supérieur ou égal à 3 donc le switch se trouvant dans le if ne se servira jamais des cas 1 et 2. Juste une petite inversion je pense.
Personnellement je mettrais au moins un commentaire. Eventuellement un assert( 0 ) comme dit plus haut.
Méfiance avec la division entière:
199 / 200 = 0
200 / 200 = 1
399 / 200 = 1
400 / 200 = 2
etc.
M.
Juste un petit mot en passant.
Le if est vrai si abs(F1-F2) / 200 est supérieur ou égal à 3 donc le switch se trouvant dans le if ne se servira jamais des cas 1 et 2. Juste une petite inversion je pense.
Personnellement je mettrais au moins un commentaire. Eventuellement un assert( 0 ) comme dit plus haut.
Méfiance avec la division entière:
199 / 200 = 0
200 / 200 = 1
399 / 200 = 1
400 / 200 = 2
etc.
M.
16 avril 2008 à 13:57
if ((F1!=F2)&& (abs(F1-F2)/200)>=3)
{int K;
switch ((abs(F1-F2)/200))
{
case 1:
K=18;
break;
case 2:
K=50;
break;
case 3:
K=58;
break;
}
tu penses qua ca va marcher?