Il existe deux instructions de conditionnelle en langage Cobol et elle est la suivante :
- IF ... ELSE
- EVALUATE ... WHEN ... END-EVALUATE
IF
L'instruction «IF» permet le teste d'une condition et de choisir d'effectuer des instructions plutôt que d'autre dans le cas ou celle-ci serait vrai. Voici donc les syntaxes :
IF expression_vrai instruction_exécuté_si_vrai |
ou
IF expression_vrai instruction_exécuté_si_vrai END-IF |
ou
IF expression_vrai instruction_exécuté_si_vrai ELSE instruction_exécuté_si_faux |
ou
IF expression_vrai instruction_exécuté_si_vrai ELSE instruction_exécuté_si_faux END-IF |
Vous y remarquerez donc après les syntaxes proposé que les instructions «ELSE» et «END-IF» ne sont pas obligatoires.
EVALUATE
Lorsqu'on effectue une série de teste répétitive sur une même variable avec différente valeur de la manière suivante :
IF valeur = 1 instruction1_exécuté_si_vrai1 ELSE IF valeur = 2 instruction_exécuté_si_vrai2 ELSE IF valeur = 3 instruction_exécuté_si_vrai3 ELSE instruction_exécuté_si_faux END-IF |
On devrait plutôt tenté d'utiliser l'instruction «EVALUATE» laquelle permet une meilleure lisibilité en plus de simplifié la compréhension pour un programmeur externe à votre code. Ainsi, l'instruction EVALUATE permet d'effectuer de nombreuses comparaisons sur un unique résultat. Voici donc sa syntaxe :
EVALUATE résultat WHEN valeur1 instruction1_exécuté_si_vrai1 WHEN valeur2 instruction_exécuté_si_vrai2 WHEN valeur3 instruction_exécuté_si_vrai3 WHEN OTHER instruction_exécuté_si_faux END-EVALUATE. |
L'instruction «WHEN OTHER» n'est pas obligatoire, il est tout de même préférable de l'inclure pour prévenir une situation anormale ou d'erreur.