Section courante

A propos

Section administrative du site

IF

Si
Ada

Syntaxe

IF exp_bool THEN
inst1;
END IF;
IF exp_bool THEN
inst1
ELSE
Inst2;
END IF;

Description

Ce mot réservé permet d'effectuer des branchements d'instruction ou de bloc d'instruction en fonction de certaines conditions.

Exemples

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

Ces exemples, en Ada, permet de tester le mot réservé «IF» d'un peu toute les façons :

  1. with TEXT_IO; use TEXT_IO;
  2.  
  3. PROCEDURE If2Samples IS 
  4.  
  5.    FUNCTION IntegerToBoolean(Value:Integer) RETURN Boolean IS BEGIN
  6.       IF Value = 0 THEN
  7.          RETURN FALSE;
  8.       ELSE
  9.          RETURN TRUE;
  10.       END IF;
  11.    END IntegerToBoolean;
  12.    
  13.    FUNCTION NotInteger(Value:IN Integer) RETURN Integer IS BEGIN
  14.       Return -(Value + 1);
  15.    END NotInteger;
  16.  
  17. BEGIN
  18.    IF False THEN 
  19.       PUT_LINE("FALSE");
  20.    END IF;
  21.    IF NOT False THEN
  22.       PUT_LINE("NOT FALSE");
  23.    END IF;
  24.    IF True THEN
  25.       PUT_LINE("TRUE");
  26.    END IF;
  27.    IF NOT True THEN
  28.       PUT_LINE("NOT TRUE");
  29.    END IF;
  30.    IF IntegerToBoolean(0) THEN 
  31.       PUT_LINE("0");
  32.    END IF;
  33.    IF IntegerToBoolean(-1) THEN 
  34.       PUT_LINE("NOT 0");
  35.    END IF;
  36.    IF IntegerToBoolean(NotInteger(0)) THEN 
  37.       PUT_LINE("NOT(0)");
  38.    END IF;
  39.    IF IntegerToBoolean(1) THEN 
  40.       PUT_LINE("1");
  41.    END IF;
  42.    IF IntegerToBoolean(NotInteger(1)) THEN 
  43.       PUT_LINE("NOT 1");
  44.    END IF;
  45.    IF NOT IntegerToBoolean(1) THEN 
  46.       PUT_LINE("NOT(1)");
  47.    END IF;
  48.    IF 100 > 300 THEN 
  49.       PUT_LINE("100 > 300");
  50.    END IF;
  51.    IF IntegerToBoolean(1-Boolean'POS(100 > 300))THEN
  52.       PUT_LINE("1-(100 > 300)");
  53.    END IF;
  54. END If2Samples;

on obtiendra le résultat suivant :

NOT FALSE
TRUE
NOT 0
NOT(0)
1
NOT 1
1-(100 > 300)


Dernière mise à jour : Dimanche, le 1er avril 2018