EVALUATE |
Evaluer |
|---|---|
| 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 ou TRUE/FALSE | Ce paramètre permet d'indiquer l'expression ou la valeur à tester. Il peut s'agir d'un identifiant (variable ou champ) ou d'une valeur booléenne (TRUE ou FALSE). L'instruction EVALUATE compare cette valeur aux différentes conditions spécifiées dans les blocs WHEN. Selon la valeur de identifier1, l'un des blocs de code correspondants sera exécuté. |
| identifier2 ou TRUE/FALSE | Ce paramètre est optionnel et permet de tester une deuxième expression si la première est TRUE ou si la condition initiale est satisfaite. Il permet d'ajouter une condition supplémentaire pour évaluer des cas plus complexes. Si identifier1 satisfait la condition, l'expression identifier2 sera alors évaluée. |
| WHEN evaluatephrase | Ce paramètre définit une condition spécifique à tester. L'expression evaluatephrase peut être un littéral, une variable, ou une comparaison impliquant une valeur, et représente la condition qui, si vraie, déclenchera l'exécution du bloc d'instructions qui suit. Si aucune des conditions spécifiées n'est remplie, le bloc WHEN OTHER sera exécuté si celui-ci est défini. |
| ALSO evaluatephrase | Ce paramètre permet d'ajouter une condition supplémentaire à la clause WHEN. Si plusieurs conditions doivent être testées avant d'exécuter les instructions correspondantes, ce paramètre permet de vérifier ces conditions en même temps. Par exemple, si evaluatephrase est vrai et qu'une autre condition est également remplie, un bloc d'instructions supplémentaire sera exécuté. |
| statementlist | Ce paramètre permet d'indiquer les instructions devant être exécutées lorsque la condition WHEN correspondante est vraie. Cela peut être une série d'instructions ou une seule, et c'est ce qui détermine l'action à entreprendre lorsque l'une des conditions est satisfaite. |
| WHEN OTHER statementlist | Ce paramètre permet de définir un bloc d'instructions à exécuter si aucune des conditions WHEN précédentes n'est satisfaite. C'est une forme de "condition par défaut", s'exécutant lorsque toutes les autres conditions ont échoué. Il est utile pour gérer des cas non anticipés. |
| END-EVALUATE | Ce paramètre marque la fin de la structure EVALUATE. Il est nécessaire pour clôturer proprement l'instruction et éviter toute ambiguïté dans le code. Il délimite la fin du test conditionnel et indique que toutes les conditions et actions correspondantes ont été traitées. |
| TRUE/FALSE | Ce paramètre permet d'indiquer le cadre d'une structure conditionnelle, TRUE et FALSE peuvent être utilisés pour tester une valeur booléenne directement. Cela permet de définir des tests conditionnels simples sans avoir à spécifier des expressions complexes, ce qui rend le code plus lisible et plus direct. |
Description
Cette instruction permet d'utiliser une instruction conditionnel de test de cas.
Remarques
- Flexibilité de la syntaxe conditionnelle : L'instruction EVALUATE permet de tester plusieurs expressions ou valeurs, offrant ainsi une structure de contrôle conditionnelle beaucoup plus flexible que les simples instructions IF. Cela permet de réaliser des tests multiples, facilitant ainsi la lecture et l'entretien du code, surtout dans les cas où plusieurs conditions doivent être vérifiées de manière séquentielle.
- Utilisation de l'expression principale identifier1 : Le premier paramètre de EVALUATE, identifier1, peut être n'importe quelle expression ou variable étant testée contre plusieurs cas dans les blocs WHEN. Cette expression peut être une simple variable, un littéral, ou une expression complexe. En fonction de sa valeur, le programme va comparer avec les différentes conditions définies sous les clauses WHEN.
- Ajouter des conditions supplémentaires avec ALSO : L'usage de ALSO permet de tester des conditions supplémentaires de manière claire et concise. Par exemple, après avoir vérifié la première condition dans WHEN, le programme peut aussi vérifier d'autres conditions avec un second paramètre identifier2. Cela évite d'avoir à enchaîner plusieurs tests WHEN ou d'utiliser des instructions IF imbriquées.
- Les clauses WHEN pour des cas spécifiques : Chaque bloc WHEN permet de spécifier une condition particulière devant être remplie pour que le bloc d'instructions suivant soit exécuté. Cela ressemble à une instruction switch dans d'autres langages de programmation. Vous pouvez tester des égalités, des comparaisons ou d'autres expressions pour chaque cas, ce qui rend le test conditionnel très puissant.
- L'utilisation de WHEN OTHER pour la gestion des cas par défaut : La clause WHEN OTHER est essentielle pour gérer les cas où aucune des conditions précédentes n'est satisfaite. Cela fonctionne comme un "catch-all" ou une instruction default, et elle permet de s'assurer qu'il y a toujours une action définie pour toutes les éventualités, évitant ainsi des comportements indéfinis.
- Amélioration de la lisibilité avec les statementlist : Les blocs de code associés à chaque WHEN ou WHEN OTHER sont très clairs. Chaque condition étant remplie active un ensemble d'instructions spécifiques, appelées statementlist. Cela permet de séparer logiquement les différentes branches du programme et améliore la lisibilité et la gestion de la logique conditionnelle dans le programme.
- Simplification du code par rapport à des instructions multiples IF : L'instruction EVALUATE simplifie la gestion de plusieurs conditions en regroupant toutes les vérifications dans un seul bloc. Contrairement à l'utilisation de multiples instructions IF imbriquées, qui peut rendre le code difficile à suivre, EVALUATE permet d'organiser proprement des conditions multiples dans un format compact et lisible.
- Terminaison de la structure avec END-EVALUATE : L'instruction END-EVALUATE est utilisée pour marquer la fin de la structure de contrôle. Bien que la structure de EVALUATE puisse être complexe avec plusieurs conditions et actions associées, la clause END-EVALUATE permet de délimiter clairement la fin du bloc et d'éviter des erreurs de syntaxe, ce qui est particulièrement utile dans des programmes comportant de nombreux blocs conditionnels imbriqués.
Dernière mise à jour : Jeudi, le 28 juillet 2011