Previous Page Next Page

9.10 La définition des valeurs des variables

L'exemple suivant montre l'importance de l'initialisation des variables. Examinons la séquence suivante:

01 K := ... ; { initialisation de K }
02 IF K>0 THEN BEGIN
03 A:=2;
04 END ELSE BEGIN
05 B:=3;
06 END;

La valeur de la variable K est déterminée par l'affectation de la ligne 1. Cependant, si les variables A et B n'ont pas été préalablement initialisées, il n'en est pas de même respectivement pour A et pour B suivant que l'expression booléenne de la ligne 2 retourne True ou False.

Dans ce cas:

• si K>0, alors A est défini par l'affectation de la ligne 3 et B n'est pas défini,

• si K£0, alors B est défini par l'affectation de la ligne 5 et A n'est pas défini.

Ce type d'erreur est très fréquent. Il donne lieu à un comportement aléatoire du programme dans le sens où des résultats corrects peuvent être obtenus pour certaines exécutions du programme.

Ce type d'erreur peut être évité le plus souvent en suivant la règle ci-dessous:

& Règle: Toute variable étant modifiée dans une branche d'une instruction IF respectivement CASE doit
- soit être initialisée avant l'exécution de l'instruction,
- soit être modifiée dans toute les branches de l'instruction.

Previous Page Next Page


© Aflo Informatique , 2003-2004