J'un probleme tout simple, j'ai une fonction A qui appelle plusieurs fois B qui appelle plusieurs fois C qui appelle plusieurs fois D qui appelle plusieurs fois E. Chacune des fonctions fait un peu la meme chose, cad qu'elles cherchent une solution au probleme sauf que chacune le fait de maniere differente et eventuellement d'apres les resultats de la fonction appelante.
Voila mon probleme. Chaque fonction retourne le statut de la recherche, j'ai rien trouve on continue, j'ai trouve c'est fini ou je sais qu'on ne peut rien trouver.
Voila mon probleme, a chaque appel de fonction a l'interieur d'une fonction je me retrouve a stocker le statut de la fonction appelée, puis a faire 3 ifs pour savoir si je continue ou si je remonte le statut (trouve, impossible) a la fonction plus haut. Bref en faisant cela, j'ai sur mes 100 lignes de codes 30 lignes de if et de return. Je trouve cela pas beau.
En c++ le plus simple aurait ete de lever une exception pour remonter direcement du fond d'une fonction jusqu'a la principale. Mais c'est un peu trash quand meme.
J'ai la solution de ne faire qu'une fonction de 70 lignes... que c'est moche, mais ca resoudrait le probleme.
Je ne vois pas trop comment s'en sortir avec des variables globales.
Le plus simple mais encore peu propre a mon gout serait d'ecrire une macro qui balance les 3 ifs et les returns autours de chaque appel...
Y aurait il une solution elegante a mon probleme ?
dans tous les cas, le resultats (trouvé, impossible de trouver) doit etre remonté a la meme fonction, celle qui a lancé la recherche
Partager