GO |
Aller |
|---|---|
| Cobol | |
Syntaxe
| GO TO procedurename1 |
|
GO TO procedurename1 [,procedurename2] ..., procedurenamen DEPENDING ON identifier1 |
Paramètres
| Nom | Description |
|---|---|
| procedurename1 | Ce paramètre désigne le nom de la procédure vers laquelle le contrôle du programme doit être transféré de manière inconditionnelle. |
| procedurename2, ..., procedurenamen | Ces paramètres supplémentaires permettent de lister plusieurs noms de procédures cibles. Le transfert se fera vers l'une d'elles en fonction d'une condition définie par le paramètre DEPENDING ON. |
| DEPENDING ON identifier1 | Ce paramètre permet de spécifier une variable dont la valeur détermine dynamiquement vers quelle procédure, parmi celles listées, le contrôle sera transféré. |
| identifier1 | Ce paramètre est une variable numérique (généralement entière) qui contient un indice utilisé pour choisir une procédure cible dans la liste fournie. Sa valeur détermine la position dans cette liste. |
Description
Cette instruction permet de passer le contrôle d'une partie de division de procédure à une autre.
Remarques
- L'instruction GO TO permet de transférer immédiatement le contrôle à une autre procédure sans retour. Contrairement à un appel de paragraphe se terminant par un EXIT, l'utilisation de GO TO saute entièrement vers une nouvelle section de code, ce qui peut nuire à la lisibilité si mal utilisée.
- L'utilisation de GO TO est souvent déconseillée dans les bonnes pratiques de programmation. En effet, elle peut entraîner un "code spaghetti", difficile à maintenir et à déboguer, surtout dans de grands programmes où le flot d'exécution devient imprévisible.
- La version avec DEPENDING ON rend l'instruction conditionnelle et plus souple. Elle permet d'orienter l'exécution vers l'une des procédures listées, selon la valeur contenue dans un identifiant. Cela permet de remplacer de longues suites de conditions ou de cas multiples.
- Le paramètre identifier1 dans DEPENDING ON doit contenir une valeur valide. Si sa valeur est hors des bornes de la liste fournie (inférieure à 1 ou supérieure au nombre de procédures listées), le comportement peut être imprévisible selon le compilateur utilisé.
- L'instruction GO TO peut être utile dans des programmes de type linéaire ou très structurés. Bien que son usage soit critiqué, elle peut être justifiée dans de courts programmes ou des traitements séquentiels simples, où elle permet une lecture plus fluide que des appels imbriqués.
- L'emploi de GO TO doit être fait avec une rigueur particulière en présence de variables globales. Toute modification d'état avant ou après le saut doit être anticipée, car il n'y a pas de retour possible comme dans une structure d'appel classique.
- L'instruction GO TO ne doit jamais être utilisée pour sortir de blocs conditionnels complexes. Dans des structures imbriquées (IF, PERFORM, EVALUATE), son utilisation peut contourner la logique naturelle du bloc et provoquer des erreurs difficilement traçables.
- La déclaration des noms de procédure cibles doit être cohérente et centralisée. Cela permet d'éviter des erreurs de nom ou de logique, et de faciliter la compréhension du flux d'exécution dans le programme COBOL.
Dernière mise à jour : Jeudi, le 28 juillet 2011