Voici le code qui utilise une fonction pour dessiner Winston 4 fois.
J'ai juste ajouté l'age qu'il avait à chaque période de sa vie.
Et vous allez voir pourquoi bientôt.
J'ai une histoire à raconter : Winston adore les donuts !
Il en mange 3 par jour !
C'est probablement pour ça que son visage est gros et jaune !
Pour lui faire comprendre que ce n'est pas bon pour lui,
je veux afficher le nombre de donuts qu'il aura mangé au total à chaque age.
Par exemple, à 2 ans, il en aura mangé ...
3 chaque jour, pendant 365 jours, sur 2 ans. C'est à dire : 3 fois 365 fois 2 !
On affiche ça sous le titre...
Wouah ! ça fait plus de 2.000 donuts alors qu'il n'a que 2 ans !
Maintenant, lorsqu'il aura 14 ans,
voyons un peu... il en aura mangé 3 fois 365 fois 14.
Et ça fait... plus de 15.000 donuts !
OK. Je peux continuer comme ça mais je reconnais une formule.
Je répète mon calcul ici.
Je change juste un truc : le nombre d'années.
Dès que je vois que je répète du code,
comme ça... je dois penser à faire une fonction.
Et oui, c'est ce qu'il faut faire. Faisons-le, alors !
Je défini ma fonction ici, et je l'appelle...
"calcTotalDonuts" (pour "calcule le nombre total de donuts").
Elle va utiliser un paramètre (le nombre d'années)
car c'est la seule chose qui change dans ma formule.
A l'intérieur, on va faire le calcul. Le résultat sera dans une variable.
C'est 3 fois 365 fois "numYears". (le nombre d'années, le paramètre)
OK. Maintenant qu'on a cette fonction, je remplace les calculs...
par l'appel de la fonction... ici... en lui passant le nombre d'années, ici 2.
OK. Hum... on ne voit plus aucun calcul maintenant !
Pourquoi ça ? Notre fonction a fait le calcul, ici.
Mais on n'a pas indiquer ce qu'il fallait en faire.
C'est un peu comme si votre professeur vous pose une question...
vous pensez à la réponse... mais vous oubliez de la dire.
Vous avez fait le travail, mais votre professeur ne pourra pas le savoir.
Si on veut que la fonction communique une valeur au programme qui l'a appelée,
on doit indiquer à la fonction de le faire.
Pour que la fonction retourne une valeur,
on doit écrire "return", puis la valeur à retourner.
Ça peut être la valeur d'une variable, ou une expression.
Donc, ici, on va retourner la valeur de notre variable. OK ?
Celui qui va appeler cette fonction va obtenir cette réponse.
Et maintenant, notre valeur est affichée ! Yahou !
On peut même optimiser le code de la fonction,
car on n'a pas besoin de la variable intermédiaire, ici.
On peut directement retourner l'expression ! Impec.
Donc maintenant, on peut utiliser notre fonction
aux différents endroits en passant le nombre d'années.
Voyons... calcTotalDonuts(25)... et calcTotalDonuts(65)
OK ! ... si il fait ça pendant 65 ans, il aura mangé 70.000 donuts !
Ça fait beaucoup, non ?
Je ne pense pas qu'il fera ça !
Maintenant qu'on en a fait une fonction, c'est simple de la faire évoluer.
Par exemple, si Winston voit ça et se dit : "ça fait trop ! et si j'en mangeais qu'un par jour ?"
OK. On a juste à aller ici... pour changer ce nombre.
et du coup, tous les calculs changent d'un coup.
Bon, ça fait encore 23.000 ! C'est encore beaucoup.
Et si il en mangeais seulement un par semaine ?
On a juste a changer le 365 par 52, car il y a 52 semaines dans une année...
OK. C'est mieux... 3.000 donuts, c'est plus raisonnable.
OK. Vous avez vu qu'avec les fonctions qui retournent une valeur,
on peut gagner en ligne de code... et on se simplifie la vie !