1 00:00:00,900 --> 00:00:03,540 Dans cette séquence, j'aimerais attirer votre attention 2 00:00:03,740 --> 00:00:08,420 sur l'usage des parenthèses et des crochets et ne pas confondre les deux. 3 00:00:09,380 --> 00:00:12,540 Les parenthèses servent à changer la priorité d'exécution 4 00:00:12,740 --> 00:00:15,890 dans les expressions ou dans du code, tandis que les 5 00:00:16,090 --> 00:00:17,870 crochets servent à définir des blocs. 6 00:00:18,210 --> 00:00:20,510 Je vous rappelle les expressions contenues dans un bloc 7 00:00:21,000 --> 00:00:23,240 au moment de la définition ne sont pas exécutées, on 8 00:00:23,440 --> 00:00:25,570 contrôle l'exécution explicitement. il faut envoyer le 9 00:00:25,770 --> 00:00:28,590 message Value au bloc pour déclencher l'exécution des 10 00:00:28,790 --> 00:00:29,630 expressions qu'ils contiennent. 11 00:00:33,170 --> 00:00:35,800 Si on revient sur les règles, quand doit-on mettre des crochets? 12 00:00:36,000 --> 00:00:40,800 On met des crochets autour d'une expression si on ne 13 00:00:41,000 --> 00:00:44,260 sait pas si les expressions à l'intérieur vont être 14 00:00:44,460 --> 00:00:46,450 exécutées, c'est-à-dire que par exemple, elles sont dans 15 00:00:46,650 --> 00:00:49,410 un If, dans une branche d'une alternative ou pas. 16 00:00:50,560 --> 00:00:54,220 Et puis, on met les crochets également si on ne sait pas 17 00:00:54,420 --> 00:00:59,230 combien de fois on va devoir répéter l'exécution de 18 00:00:59,430 --> 00:01:01,660 ces expressions contenues dans un bloc. 19 00:01:03,000 --> 00:01:05,940 Je vous donne un exemple: NTime repeat Self Do 20 00:01:06,140 --> 00:01:10,400 Something, c'est-à-dire que Self Do Something on l'a bien 21 00:01:10,600 --> 00:01:12,000 encapsulé dans un bloc. 22 00:01:12,430 --> 00:01:16,000 Pourquoi? Parce qu'on sait qu'il va falloir répéter 23 00:01:16,200 --> 00:01:17,930 plusieurs fois l'exécution de ces expressions. 24 00:01:18,520 --> 00:01:20,590 On est obligé de les mettre dans un bloc pour pouvoir 25 00:01:20,790 --> 00:01:22,820 envoyer plusieurs fois le message Value à ce bloc. 26 00:01:26,170 --> 00:01:28,280 Je vous donne un autre exemple mais cette fois en 27 00:01:28,480 --> 00:01:33,180 envoyant le message If True. Suivant le receveur, suivant 28 00:01:33,790 --> 00:01:38,500 si cette expression est vraie ou fausse, on va exécuter 29 00:01:38,700 --> 00:01:40,460 ou pas l'expression Self Do Something. 30 00:01:41,610 --> 00:01:43,610 Je ne peux pas la mettre entre parenthèses puisque s'il 31 00:01:43,810 --> 00:01:46,120 faut, potentiellement, elle ne sera pas exécutée du tout. 32 00:01:47,570 --> 00:01:50,360 Si je la mets dans un bloc, on pourra contrôler, décider 33 00:01:50,560 --> 00:01:52,520 si on envoie le message Value ou pas à ce bloc. 34 00:01:55,260 --> 00:01:58,790 Également la même chose en fait mais cette fois sur le Why True. 35 00:01:59,780 --> 00:02:03,090 C'est la même chose avec le bloc receveur et puis le bloc 36 00:02:03,290 --> 00:02:07,840 passé en paramètres. Suivant l'exécution, l'évaluation, 37 00:02:08,040 --> 00:02:11,340 si ça me rend le booléen Vrai ou Faux, on va devoir 38 00:02:11,540 --> 00:02:14,180 exécuter une fois, plusieurs fois, voire même zéro fois, 39 00:02:14,380 --> 00:02:15,910 l'expression Self Do Something. 40 00:02:16,310 --> 00:02:17,700 On est obligé de la mettre dans un bloc. 41 00:02:19,640 --> 00:02:22,000 Je vous propose de faire un petit exercice. 42 00:02:23,150 --> 00:02:28,020 Si je vous donne les 2 expressions suivantes: répéter de 43 00:02:28,220 --> 00:02:31,380 1 à N Self Do Somethhing, est-ce que je dois mettre des 44 00:02:31,580 --> 00:02:33,000 parenthèses ou des crochets ? 45 00:02:33,270 --> 00:02:37,360 Et si je fais X If Empty Self Do Something, est-ce que je 46 00:02:37,560 --> 00:02:42,000 dois mettre des parenthèses ou des crochets? 47 00:02:42,200 --> 00:02:43,350 Je vous donne les réponses. 48 00:02:44,470 --> 00:02:47,540 En fait, dans les deux cas, ce sont des crochets puisque 49 00:02:47,740 --> 00:02:50,770 dans le premier cas, si on veut répéter plusieurs fois l'expression 50 00:02:51,000 --> 00:02:53,730 Self Do Something, forcément il va falloir envoyer 51 00:02:53,930 --> 00:02:55,190 plusieurs fois le message Value à ce bloc-là. 52 00:02:56,170 --> 00:03:00,000 Et puis dans le deuxième cas, X If Empty, si X n'est pas 53 00:03:00,200 --> 00:03:02,760 vide alors dans ce cas-là il ne faut pas du tout exécuter 54 00:03:03,050 --> 00:03:04,000 l'expression Self Do Something. 55 00:03:04,680 --> 00:03:07,280 Alors que si X est vide il va falloir l'exécuter. 56 00:03:08,420 --> 00:03:10,670 En résumé, on a vu dans cette séquence qu'il ne faut 57 00:03:10,870 --> 00:03:14,580 vraiment pas confondre les parenthèses et les crochets. 58 00:03:14,780 --> 00:03:17,000 Les parenthèses servent vraiment à changer l'ordre de 59 00:03:17,200 --> 00:03:19,950 priorité d'exécution au sein d'une expression, alors que 60 00:03:20,150 --> 00:03:24,330 les crochets servent à freezer, à 61 00:03:24,530 --> 00:03:28,800 geler des expressions et de contrôler ensuite leur 62 00:03:29,000 --> 00:03:31,120 exécution, éventuellement les exécuter plusieurs fois.