Return to Video

Local and Global Variables (Video Version)

  • 0:01 - 0:12
    Maintenant que vous maîtrisez les fonctions, je souhaite vous parler q'un sujet qui n'est pas du tout évident : la différence entre les variables "locales" et les variables "globales".
  • 0:12 - 0:16
    Cela ne vous dit probablement rien pour l'instant.
    Commençons donc par un exemple.
  • 0:16 - 0:21
    Ce programme permet de montrer la façon
    dont j'ai grandit quand j'étais enfant.
  • 0:21 - 0:25
    Comme les humains grandissent chacun différemment,
    J'ai fait cette fonction : calcInches (calcul la taille en pouces)
  • 0:25 - 0:30
    Je lui passe 3 paramètres : startAge (âge de départ), endAge (âge de fin) et inchesPerYear (nombre de pouces par an)
  • 0:30 - 0:35
    La fonction calcul l'augmentation de ma taille entre ces deux âges.
  • 0:35 - 0:38
    Et elle retourne le résultat au programme qui a appelé la fonction.
  • 0:38 - 0:45
    Vous voyez, ici, entre 0 et 8 ans, j'appelle la fonction en lui passant 0, 8 et 2,5
  • 0:45 - 0:49
    car j'ai grandit de 2,5 pouces par an.
  • 0:49 - 0:53
    Le programme fait le calcul et retourne : 20.
  • 0:53 - 0:58
    Puis entre 8 et 16, j'appelle la fonction en lui passant 8, 16, puis 2
  • 0:58 - 1:02
    car j'ai grandit moins vite. Et voyez, il calcul 16.
  • 1:02 - 1:08
    OK, super ! mais maintenant je voudrait afficher la taille totale que j'ai à 16 ans.
  • 1:08 - 1:17
    Comment faire ça ?...
    En regardant mon code, je me demande : quelles valeurs j'ai à ma disposition ?
  • 1:17 - 1:22
    Est-ce que j'ai quelque chose qui représente ma taille totale ?
  • 1:22 - 1:26
    J'ai une variable "totalInches" à l'intérieur de ma fonction
  • 1:26 - 1:31
    donc je peux juste l'afficher et voir ce que ça donne.
  • 1:31 - 1:36
    Donc, j'écrit tout en bas : text(totalInches, 10, 200)
  • 1:36 - 1:43
    Voyons ce que ça donne... Oh Oh !
    J'ai une erreur quelque part !
  • 1:43 - 1:52
    "totalInches" n'est pas définit.
    Bizarre, car cette variable est définie ici !
  • 1:52 - 2:00
    En fait le problème c'est que "totalInches" est définie
    à l'intérieur de la fonction... Ici.
  • 2:00 - 2:05
    Quand on fait ça, la variable est considérée "locale".
  • 2:05 - 2:10
    Elle n'a une existence QUE dans la fonction... Ici.
  • 2:10 - 2:15
    Le code à l'extérieur de la fonction (tout ça...) ne
    connaît pas les variables locales des fonctions.
  • 2:15 - 2:19
    Il ne connaît que ce qui est retournée.
  • 2:19 - 2:22
    Il ne connaît que cette valeur... pas la variable.
  • 2:22 - 2:26
    Donc, quand on essaie d'utiliser la variable "totalInches" à l'extérieur de la fonction, il ne la connaît pas !
  • 2:26 - 2:31
    Et du coup, il nous dit : "Hey, je ne connais pas cette variable, je ne peux pas l'afficher !".
  • 2:31 - 2:38
    Bon. Il y a un moyen pour que le code externe puisse utiliser cette variable.
  • 2:38 - 2:42
    C'est en transformant cette variable locale en variable "globale".
  • 2:46 - 2:50
    On peut faire ça en déplaçant la déclaration de la variable à l'extérieur de la fonction : c'est ce qu'on appelle la "portée globale".
  • 2:50 - 2:59
    Et maintenant, à l'intérieur de la fonction, on ne fait que changer sa valeur à chaque fois. On ne la déclare pas.
  • 2:59 - 3:03
    Regardez, le programme indique maintenant que le total est de 16.
  • 3:03 - 3:07
    Donc, il a trouvé la variable car on l'a rendue globale.
  • 3:07 - 3:10
    Mais, par contre, ça ne donne pas le résultat qu'on souhaite.
  • 3:10 - 3:12
    C'est seulement la valeur calculée la plus récente.
  • 3:12 - 3:18
    C'est parce qu'à chaque fois qu'on appelle la fonction, la variable "totalInches" calcul la valeur en fonction des paramètres.
  • 3:18 - 3:22
    Donc, ce qu'on a vraiment besoin de faire, c'est de créer une nouvelle variable
  • 3:22 - 3:29
    qu'on va utiliser pour spécialement calculer la somme des calculs qu'on va faire.
  • 3:29 - 3:38
    Donc revenons au code précédent avec notre variable locale.
    Et créons une nouvelle variable globale "lifeInches".
  • 3:38 - 3:41
    On va la faire commencer à 0.
  • 3:41 - 3:50
    Et, à l'intérieur de la fonction, on va calculer la somme :
    lifeInches += totalInches.
  • 3:50 - 3:53
    Donc, au fur et à mesure, ça va cumuler la valeur de "totalInches"
  • 3:53 - 3:56
    dans la variable globale "lifeInches".
  • 3:56 - 4:00
    Puis, tout en bas, on va afficher "lifeInches".
  • 4:00 - 4:04
    Et voilà !
    La taille total !
  • 4:04 - 4:07
    Bon, ce n'est pas ma taille d'aujourd'hui...
    Je suis plus grand que ça !
  • 4:07 - 4:11
    C'est parce qu'on ne naît pas avec une taille de zéro !
  • 4:11 - 4:13
    Donc, si on débute la taille à... 20, par exemple.
  • 4:13 - 4:17
    Et voilà !
    Voilà ma taille (en pouces) à 16 ans !
  • 4:17 - 4:22
  • 4:22 - 4:27
  • 4:27 - 4:33
  • 4:33 - 4:38
  • 4:38 - 4:43
  • 4:43 - 4:47
  • 4:47 - 4:51
  • 4:51 - 4:55
  • 4:55 - 4:58
  • 4:58 - 5:02
  • 5:02 - 5:06
Title:
Local and Global Variables (Video Version)
Description:

more » « less
Video Language:
English
Duration:
05:06

French subtitles

Incomplete

Revisions