Goto dans une fonction
Résolu
OtaksMaster
Messages postés
22
Statut
Membre
-
OtaksMaster Messages postés 22 Statut Membre -
OtaksMaster Messages postés 22 Statut Membre -
bonjour,
je fais un petit programme et je me demandais si c'était pas un peu dangereux de combiner les fonctions et les labels et gotos plus concrètement je voudrais faire quelque chose du style :
"
fonction1(){
blabla;
goto fonction2;
};
fonction2:
fonction2(){
blabla;
goto fonction3;
};
"
et pendant peut-être un certain nombre de fonctions mais est-ce que ça risquerait pas de lancer fonction après fonction sans jamais les finir ou peut-être que ça les fermerait pas bien bref moi sais pas trop du coup j'demande :D.
merci d'avance.
je fais un petit programme et je me demandais si c'était pas un peu dangereux de combiner les fonctions et les labels et gotos plus concrètement je voudrais faire quelque chose du style :
"
fonction1(){
blabla;
goto fonction2;
};
fonction2:
fonction2(){
blabla;
goto fonction3;
};
"
et pendant peut-être un certain nombre de fonctions mais est-ce que ça risquerait pas de lancer fonction après fonction sans jamais les finir ou peut-être que ça les fermerait pas bien bref moi sais pas trop du coup j'demande :D.
merci d'avance.
A voir également:
- Goto dans une fonction
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer dans word - Guide
- Fonction somme excel - Guide
3 réponses
De base, on évite l'instruction "goto", celle-ci génère un code difficilement lisible.
Dans ton cas, un simple appel à la fonction est requis :
f
Dans ton cas, un simple appel à la fonction est requis :
f
onction1(){
blabla;
fonction2();
};
Bonjour,
De manière générale il faut éviter de mélanger fonctions et goto (voire même bannir le goto tout simplement). Tu pourrais faire directement :
"est-ce que ça risquerait pas de lancer fonction après fonction sans jamais les finir ou peut-être que ça les fermerait pas bien"
Le problème n'est pas spécifique au goto, il existe aussi avec les fonctions, on appelle ça de la récursivité croisée (ou récursion mutuelle), si c'est mal géré ça peut planter (erreur de type stack overflow).
Pour éviter ce genre de problème, il faut bien gérer ses cas d'arrêts et/ou mettre en place de la récursion terminale (ce qui est le cas dans tes exemples).
De manière générale il faut éviter de mélanger fonctions et goto (voire même bannir le goto tout simplement). Tu pourrais faire directement :
fonction1() {
blabla;
fonction2();
}
fonction2(){
blabla;
fonction3();
}
"est-ce que ça risquerait pas de lancer fonction après fonction sans jamais les finir ou peut-être que ça les fermerait pas bien"
Le problème n'est pas spécifique au goto, il existe aussi avec les fonctions, on appelle ça de la récursivité croisée (ou récursion mutuelle), si c'est mal géré ça peut planter (erreur de type stack overflow).
Pour éviter ce genre de problème, il faut bien gérer ses cas d'arrêts et/ou mettre en place de la récursion terminale (ce qui est le cas dans tes exemples).