Probleme return statement
Résolu/Fermé
A voir également:
- Probleme return statement
- Return c ✓ - Forum C
- Syntaxerror: 'return' outside function - Forum Python
- Fonction vba return - Forum VB / VBA
- Return 0 - Forum C++
- Return to castle wolfenstein patch fr ✓ - Forum Jeux vidéo
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
13 oct. 2011 à 20:32
13 oct. 2011 à 20:32
Dans ta méthode nombreJour tu fais une succession de if sur la valeur de mois, mais il faut que l'énumération des cas soit exhaustif.
Par exemple si mois==13, il n'y a pas de return associé, alors qu'il faudrait en avoir un.
Tu peux par exemple associé la valeur 0 pour dire qu'il n'y a pas de jour au mois 13.
Remarque au passage, tu peux directement faire return 0; sans avoir à déclarer une variable nombreJourMois=0 et faire return nombreJourMois.
Par exemple si mois==13, il n'y a pas de return associé, alors qu'il faudrait en avoir un.
Tu peux par exemple associé la valeur 0 pour dire qu'il n'y a pas de jour au mois 13.
Remarque au passage, tu peux directement faire return 0; sans avoir à déclarer une variable nombreJourMois=0 et faire return nombreJourMois.
38 } else return 0; 39 }
Modifié par apolonys le 13/10/2011 à 20:43
donc si je veux etre plus complet je pourrai faire :
} else {
if (( 1 <= mois) && (mois <=12)) {
nombreJourMois = 0;
return nombreJourMois;
}
}
Modifié par KX le 13/10/2011 à 20:50
En fait cette condition ne sert à rien, car tous les mois entre 1 et 12 sont déjà traités avant.
Ici ce qui t'intéresse c'est vraiment les autres cas, donc un else suffit, comme je l'ai fait plus haut.
13 oct. 2011 à 20:51
13 oct. 2011 à 20:58
// une succession de if et else if traitant les cas de 1 à 12 } // ligne 38 else // mois<1 ou mois>12 { if (( 1 <= mois) && (mois <=12)) // condition impossible { nombreJourMois = 0; // ce code ne sera jamais traité return nombreJourMois; // à cause de la condition impossible } // ici il manque un else dans le cas ou mois<1 ou mois>12 } } // ligne 39Toutes ces instructions ne servent à rien, ça ne résout pas ton problème.
Ce qu'il faut je l'ai déjà mis plus haut dans ma première réponse :
// une succession de if et else if traitant les cas de 1 à 12 } // ligne 38 else // mois<1 ou mois>12 return 0; } // ligne 39Modifié par apolonys le 13/10/2011 à 21:05
if ((mois <1) || (mois >12))
nombreJourMois = 0;
return nombreJourMois;
mais avec ta solution ca reviendra au meme mais en plus courte c'est bien ca ?