Section courante

A propos

Section administrative du site

Les instructions de conditionnel en langage Ada sont au nombres de deux :

IF THEN ELSE

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 THEN
   instruction_exécuté_si_vrai;
END IF;

ou

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

ou

IF expression_vrai THEN
   instruction_exécuté_si_vrai
ELSIF expression_vrai2 THEN
   instruction_exécuté_si_vrai2
ELSE
   instruction_exécuté_si_faux;
END IF;

Vous y remarquerez donc après les syntaxes proposé que l'instruction «ELSE» n'est pas obligatoire.

Exemple

Cet exemple permet de tester une condition vrai :

  1. with TEXT_IO; use TEXT_IO;
  2.  
  3. PROCEDURE IfSamples IS BEGIN
  4.    IF True THEN 
  5.       PUT_LINE ("La condition est vrai");
  6.    END IF;
  7. END IfSamples;

on obtiendra le résultat suivant :

La condition est vrai

CASE

Lorsqu'on effectue une série de teste répétitive sur une même variable avec différentes valeurs de la manière suivante :

IF valeur = 1 THEN
 instruction1_exécuté_si_vrai1
ELSIF valeur = 2 THEN
 instruction_exécuté_si_vrai2
ELSIF valeur = 3 THEN
 instruction_exécuté_si_vrai3
ELSE
 instruction_exécuté_si_faux
END IF;

On devrait plutôt tenté d'utiliser l'instruction «CASE» laquelle permet une meilleure lisibilité en plus de simplifié la compréhension pour un programmeur externe à votre code. Ainsi, l'instruction CASE permet d'effectuer de nombreuses comparaisons sur un unique résultat. Voici donc sa syntaxe :

CASE résultat IS
 WHEN valeur1 =>  instruction1_exécuté_si_vrai1;
 WHEN valeur2 =>  instruction_exécuté_si_vrai2;
 WHEN valeur3 =>  instruction_exécuté_si_vrai3;
 WHEN OTHERS =>  instruction_exécuté_si_faux;
END CASE;

Il est également possible d'avoir des ensembles de valeurs applicable comme cas. Voici un exemple :

CASE résultat IS
 WHEN 5..9 => instruction1;
 WHEN 11..14 => instruction2;
 WHEN 10 | 15 | 16 => instruction3;
END CASE;

Dans cet exemple les «instructions1» est exécuté si le résultat a une valeur entre 5 et 9. Ensuite, les «instructions2» est exécuté si le résultat a une valeur entre 11 et 14. Enfin, les «instructions3» est exécuté si le résultat à la valeur 10, 15 ou 16.

Exemple

Cet exemple permet d'évaluer la valeur de la variable «a» :

  1. WITH TEXT_IO; USE TEXT_IO;
  2.  
  3. PROCEDURE CaseSamples IS 
  4.    a:Integer;
  5.  
  6. BEGIN
  7.    a:= 2;
  8.    CASE A IS
  9.       WHEN 1|2|3 => PUT_LINE("Entre 1 et 3");
  10.       WHEN 4|5|6 => PUT_LINE("Entre 4 et 6");
  11.       WHEN 7 => PUT_LINE("C'est 7");
  12.       WHEN OTHERS => PUT_LINE("Inférieur ou égale à 0 ou supérieur à 8");
  13.    END CASE;  
  14. END CaseSamples;

on obtiendra le résultat suivant :

Entre 1 et 3

Dernière mise à jour : Samedi, le 25 août 2012