-
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 !