END-SEARCH |
Fin de recherche |
|---|---|
| Cobol | |
Syntaxe
|
SEARCH field AT END statement1 WHEN condition statement2 END-SEARCH. |
|
SEARCH identifier [VARYING identifier] [[AT] END statementlist] WHEN condition(statementlist|NEXT SENTENCE END-SEARCH |
Paramètres
| Nom | Description |
|---|---|
| field | Ce paramètre permet d'indiquer le nom du champ ou tableau à parcourir lors de la recherche. |
| identifier | Ce paramètre permet de désigner l'élément (souvent un tableau ou un index) sur lequel la recherche est effectuée. |
| VARYING identifier | Ce paramètre permet d'utiliser une variable d'indexation pour parcourir les éléments du champ ciblé. |
| AT END | Ce paramètre permet de spécifier les instructions à exécuter lorsque la recherche atteint la fin sans trouver de correspondance. |
| statement1 | Ce paramètre permet d'indiquer l'instruction exécutée si aucune condition WHEN n'est remplie. |
| WHEN condition | Ce paramètre permet de définir une condition logique à tester pour identifier un élément correspondant. |
| statement2 | Ce paramètre permet d'indiquer l'instruction à exécuter lorsque la condition WHEN est vraie. |
| statementlist | Ce paramètre permet d'indiquer une ou plusieurs instructions à exécuter selon les cas (fin ou réussite de la recherche). |
Description
Cette instruction permet d'indiquer la fin d'une instruction SEARCH.
Remarques
- L'instruction END-SEARCH permet de structurer proprement un bloc de recherche conditionnelle dans un tableau ou une structure indexée. Elle marque la fin logique du traitement enclenché par SEARCH, garantissant une meilleure lisibilité du code, notamment dans des environnements complexes.
- L'utilisation de END-SEARCH est particulièrement importante dans les programmes COBOL modernes, car elle remplace les anciennes syntaxes implicites terminées par un point (.), contribuant à une meilleure structuration et à une réduction des erreurs liées à l'ambiguïté des blocs d'instructions.
- Le mot clef VARYING permet d'itérer à travers un tableau ou une structure de données indexée. Cela est essentiel pour les recherches dynamiques, car il évite d'écrire manuellement une boucle externe et permet d'intégrer directement l'indexation dans la logique de SEARCH.
- Le bloc WHEN condition joue un rôle central dans la recherche : il évalue une ou plusieurs conditions permettant d'identifier l'élément souhaité dans la structure parcourue. Chaque WHEN peut déclencher un traitement spécifique, permettant ainsi une sélection fine et structurée.
- Le mot clef AT END est une mesure de sécurité utile. Il permet de gérer les cas où aucun élément ne satisfait les conditions données. Grâce à lui, le programmeur peut déclencher une alerte, un traitement par défaut ou simplement enregistrer l'échec de la recherche.
- L'utilisation de SEARCH combinée à END-SEARCH est souvent préférable à des boucles manuelles PERFORM dans les cas de recherche simple, car elle offre une syntaxe dédiée à cet usage, facilitant la compréhension du but de l'opération par les futurs lecteurs du code.
- La syntaxe NEXT SENTENCE peut être utilisée à l'intérieur d'un bloc WHEN pour indiquer que le contrôle doit passer à l'instruction suivante située en dehors du bloc SEARCH. Cela peut être utile lorsque l'on souhaite interrompre immédiatement la recherche après une correspondance.
- Enfin, END-SEARCH s'inscrit dans une logique plus moderne du COBOL structuré, visant à rendre les programmes plus modulaires, clairs et maintenables. Il s'intègre parfaitement avec d'autres blocs structurants tels que END-IF, END-PERFORM ou END-EVALUATE.
Dernière mise à jour : Jeudi, le 28 juillet 2011