Goto dans une fonction

Résolu
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.
A voir également:

3 réponses

NHenry Messages postés 15479 Statut Modérateur 366
 
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
onction1(){
blabla;
fonction2();
}; 

0
KX Messages postés 19031 Statut Modérateur 3 020
 
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 :

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).
0
OtaksMaster Messages postés 22 Statut Membre 2
 
ok merci beacoup
0