petite question en C++ - Programmation
Marsh Posté le 31-05-2001 à 10:36:17
ben d'apres ce que je sais, les fonctions s'empile les une sur les autres (c'est crade comme meme) et a la fin elle retorne quelque chos a l'appelante, etc...
a mais si je l'a fait rien retourner, ça doit marché nan ?
Marsh Posté le 31-05-2001 à 10:47:36
Ben si ta fonction est recursive terminale, ca ne pose pas de probleme, vu que la suite des operations c'est uniquement des 'return' successifs.
Mais j'ai l'impression que tu veux faire un 'break' mechant, et te casser d'un coup. Oui, mais dans ce cas la pile reste degueulasse avec plein d'appels de fonctions qui ne sont jamais depiles...
C'est pas si crade que ca les recursions, a la fin tout est clean comme avant.
Ou alors tu dois trouver une solution iterative, auquel cas tu peux faire un mechant goto en plein milieu.
Marsh Posté le 31-05-2001 à 11:28:03
faudrait demander à Verdoux mais à mon avis, aucun copilo te permettra de faire ça...
Marsh Posté le 31-05-2001 à 11:30:34
Pas de goto, c'est de la prog dégueu.
éssaye de faire renvoyer un booléen par ta fonction et tu fais
tantque pas fini faire
fini = laFonctionQueTuVeuxRécursive()
finTantQue
Je ne sais pas ce que tu veux faire exactement mais éssaye ça pour voir. Mais surtout évite les goto et les breaks, c'est vraiment trop grade surtout si d'autres gars risquent de travailler sur ton prog dans l'avenir (ou toi dans 3ans).
[edit]--Message édité par Moustaaki--[/edit]
Marsh Posté le 31-05-2001 à 11:35:00
de toute façon, un goto qui sort d'une fonction, ça passera pas...
Marsh Posté le 31-05-2001 à 18:09:13
Mais il y a les long jumps....
ne pas taper sur la tete, non...
Marsh Posté le 31-05-2001 à 18:56:21
Si ta fonction n'est pas récursive terminale et/ou tu fais plusieurs appels récursifs, une méthode générale est de lui faire renvoyer un booléen :
Code :
|
Autre avantaqge : la fonction qui va appeler cette fonction récursive pourra aussi savoir si le truc cherché a été trouvé.
[edit]--Message édité par BifaceMcLeOD--[/edit]
Marsh Posté le 01-06-2001 à 09:07:02
juldjin a écrit a écrit : j'ai fais une fonction récursive, et j'aimerai que quand elle a trouvé ce qu'elle cherchait, elle s'arrete net, sans revenir en arriere. Qqun a une idée ? |
La fonction doit faire un return normal, pourquoi veux-tu qu'elle s'arrete net puisquelle doit depiler ? A moins que tu ne voudrais arreter apres un certain nombre de recursions, dans ce cas tu definit une variable statique que tu incrementes et tu testes a chaque fois sa valeur.
Marsh Posté le 31-05-2001 à 10:30:30
j'ai fais une fonction récursive, et j'aimerai que quand elle a trouvé ce qu'elle cherchait, elle s'arrete net, sans revenir en arriere.
Qqun a une idée ?
---------------
"l'homme est un loup pour l'homme"