END-EVALUATE |
Fin d'évaluer |
|---|---|
| Cobol | |
Syntaxe
|
EVALUATE (identifier1|TRUE|FALSE) [ALSO identifier2|TRUE|FALSE] WHEN evaluatephrase [ALSO evaluatephrase] statementlist [WHEN OTHER statementlist] [END-EVALUATE] |
Paramètres
| Nom | Description |
|---|---|
| identifier1 | Ce paramètre permet d'indiquer une valeur à comparer dans l'expression principale de l'évaluation. Il est utilisé pour déterminer le cas à exécuter. |
| TRUE / FALSE | Ces paramètres permettent de tester des conditions booléennes dans le cadre d'une expression logique simple ou combinée avec ALSO. |
| ALSO | Ce paramètre permet d'effectuer une évaluation combinée de plusieurs expressions, créant des tests multicritères dans un EVALUATE. |
| evaluatephrase | Ce paramètre permet de représenter une valeur ou un intervalle de valeurs à comparer à l'identifier pour déclencher un bloc d'instructions. |
| statementlist | Ce paramètre permet de définir les instructions à exécuter lorsque la clause WHEN correspond à la valeur évaluée. |
| WHEN | Ce paramètre permet d'introduire un cas de comparaison spécifique dans l'évaluation, similaire à un case dans d'autres langages. |
| WHEN OTHER | Ce paramètre permet de spécifier un bloc d'instructions par défaut si aucun des cas précédents ne correspond. |
| END-EVALUATE | Ce paramètre permet de marquer la fin explicite de l'instruction EVALUATE, notamment utile lorsqu'elle contient plusieurs blocs complexes. |
Description
Cette instruction permet de délimiter la fin d'une instruction conditionnelle de test de cas.
Remarques
- L'instruction END-EVALUATE est utilisée pour clôturer proprement un bloc conditionnel EVALUATE, équivalent d'un switch-case dans d'autres langages. Elle est particulièrement utile pour structurer le code de manière lisible, surtout lorsque plusieurs clauses WHEN sont présentes. Sans END-EVALUATE, un EVALUATE complexe peut devenir ambigu ou difficile à maintenir.
- Dans les versions modernes de COBOL, l'utilisation explicite de END-EVALUATE est fortement recommandée, voire obligatoire en mode END-VERB. Cela garantit une meilleure gestion des blocs d'instructions, surtout lorsqu'ils sont imbriqués dans des structures conditionnelles ou itératives. Cela aide aussi les outils de vérification de syntaxe et les compilateurs à détecter plus rapidement les erreurs de structure.
- END-EVALUATE offre une meilleure lisibilité du code, surtout dans des programmes où plusieurs cas sont testés et chacun peut contenir plusieurs instructions. Il permet de facilement identifier la fin de la logique conditionnelle sans avoir à chercher des mots-clés implicites comme CONTINUE. C'est un outil de clarté pour les programmeurs COBOL débutants ou ceux qui reprennent un code existant.
- Dans les pratiques COBOL bien structurées, chaque EVALUATE devrait avoir son END-EVALUATE, même si certains compilateurs tolèrent l'omission. Cela évite les comportements imprévus si d'autres blocs conditionnels ou répétitifs suivent immédiatement. Cela devient essentiel dans des programmes longs où la cohérence syntaxique améliore la maintenabilité.
- L'instruction END-EVALUATE joue un rôle équivalent à une accolade fermante (}) dans des langages structurés comme Java ou C#. Elle sert de délimiteur clair, particulièrement important dans les environnements de développement COBOL où la hiérarchie du code n'est pas toujours visuellement marquée. C'est un moyen explicite de fermer une évaluation sans risque d'ambiguïté.
- L'utilisation de END-EVALUATE est également cruciale lorsque les blocs EVALUATE incluent des instructions imbriquées comme des PERFORM, IF, ou d'autres EVALUATE. Sans cette instruction de fin, il serait difficile pour le compilateur comme pour le lecteur de déterminer où s'arrête le traitement conditionnel. Elle facilite donc le développement de logique complexe dans les applications d'entreprise.
- Lorsque l'instruction EVALUATE est utilisée avec des tests combinés (ALSO), END-EVALUATE permet de regrouper proprement toutes les combinaisons de cas. Cela garantit que toutes les conditions sont correctement couvertes et que la structure conditionnelle est complète. C'est aussi un point de repère pour gérer des cas inattendus avec WHEN OTHER.
- Le mot-clef END-EVALUATE est compatible avec les directives de bonne pratique COBOL imposées par certaines normes industrielles. Il contribue à l'écriture de code modulaire, clair et facilement réutilisable. Son absence dans des codes critiques peut entraîner des erreurs de logique ou des comportements erratiques selon les compilateurs.
Dernière mise à jour : Jeudi, le 28 juillet 2011