Section courante

A propos

Section administrative du site

Introduction

Les instructions de conditionnel en langage PL1 sont aux nombres de deux et sont extrêmement particulières :

IF THEN ELSE

L'instruction «IF» permet le test 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 THEN instruction_exécuté_si_vrai

ou

IF expression_vrai THEN instruction_exécuté_si_vrai ELSE instruction_exécuté_si_faux

ou

IF expression_vrai1THEN
 instruction_exécuté_si_vrai1
ELSE
 instruction_exécuté_si_faux

Vous y remarquerez donc après les syntaxes proposé que les instructions «ELSE» ou «ELSEIF» ne sont pas obligatoire.

Exemple

Cet exemple permet de tester une condition vrai :

  1.  Corps: PROC options(main);  
  2.      IF '1'B THEN DO;
  3.        display('La condition est vrai');
  4.      END;
  5.  END Corps;

on obtiendra le résultat suivant :

La condition est vrai

SELECT

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 THEN
 instruction1_exécuté_si_vrai1
ELSE IF valeur = 2 THEN
 instruction_exécuté_si_vrai2
ELSE IF valeur = 3 THEN
 instruction_exécuté_si_vrai3
ELSE
 instruction_exécuté_si_faux

On devrait plutôt tenté d'utiliser l'instruction «SELECT» laquelle permet une meilleure lisibilité en plus de simplifié la compréhension pour un programmeur externe à votre code. Voici donc sa syntaxe:

SELECT(resultat);
 WHEN(1)
 instruction1_exécuté_si_vrai1;
 WHEN(2)
 instruction2_exécuté_si_vrai2;
 WHEN(3)
 instruction3_exécuté_si_vrai3;
 OTHERWISE
 instruction_exécuté_si_faux;
END;

L'instruction «OTHERWISE» 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.

Exemple

Voici un exemple une utilisation typique de cette instruction :

  1.  Corps: PROC options(main);  
  2.      DECLARE (a) fixed;
  3.      a = 2;
  4.      SELECT(a);
  5.         WHEN(1,2,3)
  6.             display('Entre 1 et 3');
  7.         WHEN(4,5,6)
  8.             display('Entre 4 et 6');
  9.         WHEN(7)
  10.             display('C''est 7');
  11.         OTHERWISE
  12.             display('Inférieur ou égale à 0 ou supérieur à 8');
  13.      END;
  14.  END Corps;

on obtiendra le résultat suivant :

Entre 1 et 3

Dernière mise à jour : Lundi, le 13 octobre 2014