Souci avec result dans une fonction
Bonjour,
J'ai commencé a coder en pascal il y a peu, et j'ai du mal a comprendre ceci : (voici le code pour l'exemple)
Code:
1 2 3 4 5 6 7 8 9 10 11
|
function factorielle(x: integer): integer;
var compteur, dernier_nombre: integer;
begin
dernier_nombre:=1;
if(x=0) then result:=1;
for compteur:=1 to x do
begin
result:=compteur*dernier_nombre;
dernier_nombre:=result
end |
La fonction calcule bien la factorielle d'un nombre comme je le souhaite, mais je ne comprend pas pourquoi quand je demande la factorielle de 0 il n'exécute pas la boucle qui suit malgré le fait que je n'ai pas de ELSE apres mon IF. Je me suis dit que des que la fonction recevait une valeur pour result elle s'arrêtait mais si c'était le cas elle devrait s'arreter lors du premier passage dans la boucle.
Si vous pouviez m'éclairer sur ce point je vous en remercierait grandement :)