WEBVTT 00:00:01.113 --> 00:00:03.718 Voltamos com um programa que imprime array de amigos. 00:00:03.718 --> 00:00:07.007 Mas tem algo nisso que me deixa irritada. 00:00:07.007 --> 00:00:11.295 Sempre que adiciono um novo amigo no array tenho que adicionar um novo texto no fim. 00:00:11.295 --> 00:00:13.378 Digamos que adicione Winston. 00:00:13.378 --> 00:00:15.211 Ele não irá aparecer automaticamente. 00:00:15.211 --> 00:00:22.615 Para aparecer, digito text(MyFriends[3]) e mudamos a posição y e veremos Winston. NOTE Paragraph 00:00:23.160 --> 00:00:24.334 É muito trabalhoso. 00:00:24.854 --> 00:00:30.699 Sempre que adicionar algo ao array, quero que o texto seja adicionado automaticamente 00:00:31.807 --> 00:00:34.496 Você se lembra de quando aprendemos laços? 00:00:34.496 --> 00:00:38.248 Laços de repetição foram um bom modo de repetir o mesmo trecho de código várias vezes. 00:00:38.248 --> 00:00:43.273 Como, se quiséssemos ter várias árvores enfileiradas ou um monte de balões. 00:00:43.273 --> 00:00:48.914 Laços de repetição é uma excelente maneira de rodar um pedaço de código em cada array 00:00:48.914 --> 00:00:53.595 De fato, você verá laço de repetição em quase todas as vezes que ver um array. 00:00:53.595 --> 00:00:56.198 Eles trabalham muito bem em conjunto. 00:00:57.238 --> 00:00:59.697 Vamos usar laços de repetição para imprimir na tela nomes de amigos, 00:00:59.697 --> 00:01:03.576 ao invés de usar todos esses comandos, para mostrar o que eu quero dizer. 00:01:03.576 --> 00:01:07.655 Comecemos com três perguntas que sempre nos fazemos quando criamos um laço. 00:01:07.655 --> 00:01:11.819 Primeiro, o que eu quero repetir? Veja. O que é repetido? O comando texto. 00:01:11.819 --> 00:01:16.445 O que quero mudar toda vez? Bem, deixe-me ver o que é diferente. 00:01:16.445 --> 00:01:19.991 A posição 'y' e o atual 'index', certo ? 00:01:19.991 --> 00:01:25.478 O número do amigo e a posição 'y'. 00:01:25.698 --> 00:01:30.868 E quantas vezes devo repetir? Bem, repetiremos até que não haja mais amigos. 00:01:33.078 --> 00:01:36.192 Então agora sabemos o que queremos, e podemos criar nosso laço. 00:01:36.192 --> 00:01:39.836 Começamos com a variável counter para sabermos em que lugar do laço estamos. 00:01:39.836 --> 00:01:43.350 Então vou dizer var friendNum = 0; 00:01:44.190 --> 00:01:49.508 Inicializaremos como zero, pois ele é o o primeiro elemento do array, e não 1. 00:01:49.508 --> 00:01:57.031 Teremos o nosso laço while, então diremos while(friendNum < myfriends.length). 00:01:57.031 --> 00:02:02.426 Iremos comparar o valor atual de "counter" com a variável número de objetos no array. 00:02:03.696 --> 00:02:06.906 Dentro do laço, será onde usaremo o comando "text". 00:02:06.906 --> 00:02:10.776 Diremos, text(myFriends) - e aqui, ao invés do número 00:02:10.776 --> 00:02:13.578 colocaremos friendNum porque representa o número atual. 00:02:14.218 --> 00:02:17.929 E então colocaremos apenas uma posição. 00:02:17.929 --> 00:02:21.060 Isto nos dá um pequeno erro de repetição infinita 00:02:21.060 --> 00:02:25.343 porque não mudamos de fato nada no friendNum. 00:02:25.343 --> 00:02:27.766 Lembre-se, precisamos incrementar friendNum toda vez 00:02:27.766 --> 00:02:31.540 caso contrário o laço sempre se repetirá pois a condição sempre será verdadeira. 00:02:31.900 --> 00:02:38.030 Vi que algo aconteceu. Comentarei o outro código para poder ver o que houve. 00:02:38.030 --> 00:02:42.891 O que temos é que mostramos todos os nomes, mas eles um em cima do outro. 00:02:42.891 --> 00:02:45.017 Então, precisamos mudar posição 'y'. 00:02:45.017 --> 00:02:49.576 Vamos dizer apenas 'friendNum * 30'. 00:02:49.976 --> 00:02:54.611 Ficou bom, mas Shophia está fora da tela e ela não vai ficar feliz se descobrir isso. 00:02:54.611 --> 00:02:59.219 Então, vamos adicionar apenas 30. Agora todos aparecendo com 30. 00:03:00.709 --> 00:03:03.847 Agora você verá que temos um laço para imprimindo nosso array. 00:03:03.847 --> 00:03:08.585 Isso significa que se adicionarmos mais pessoas como OhNoesGuy, ou até mesmo Sal, 00:03:08.585 --> 00:03:13.384 se eu incluí-los no array, então Sal será meu amigo. Legal! Agora ele é meu colega. 00:03:13.384 --> 00:03:20.089 Você vê que aparece automaticamente novos amigos pois está percorrendo todo o array. 00:03:20.089 --> 00:03:23.671 Então podemos apagar nosso código antigo. Não precisamos mais dele. 00:03:24.031 --> 00:03:27.696 Vamos dar uma olhada nesse código novamente e revisar o que ele faz. 00:03:28.556 --> 00:03:31.037 Começamos com friendNum = 0;. 00:03:31.257 --> 00:03:33.868 Verificamos se friendNum é menor que o tamanho atual. 00:03:33.868 --> 00:03:37.533 Então imagine que zero é menor que seis. O que é verdade. 00:03:37.943 --> 00:03:41.641 Então vamos pra cá e dizemos que 'text', é igual valor de firendNum. 00:03:41.641 --> 00:03:43.892 Isso vai virar zero, a primeira vez. 00:03:43.892 --> 00:03:47.234 E então 30 mais zero 30. 00:03:47.234 --> 00:03:53.185 Sophia aparece na posição 10 e 30. É o que isso faz. 00:03:53.185 --> 00:03:55.822 E então friendNum++, e vira 1. 00:03:55.822 --> 00:03:59.795 E código recomeça e valida, "Ok, 1 é menor que o myFriends.Lenght? Sim é." 00:03:59.795 --> 00:04:01.718 E continua e continua e continua. 00:04:01.718 --> 00:04:04.249 E então chegamos ao Sal, lembre, 00:04:06.140 --> 00:04:09.102 Sal é atualmente o sexto elemento no array, mas seu índice é 5, 00:04:09.102 --> 00:04:10.806 já que começamos com zero. 00:04:10.806 --> 00:04:13.517 Então, cinco é menor que seis? Sim. 00:04:13.517 --> 00:04:15.796 Então vai imprimir 'myFriends' cinco. 00:04:15.796 --> 00:04:21.332 E então vira seis e validamos. "Seis é menor que seis?" Não, é igual. 00:04:21.332 --> 00:04:25.518 Então será falso. Nunca apresentaremos o sexto elemento. 00:04:25.518 --> 00:04:29.250 O que é bom porque não há nada na sexta posição. 00:04:29.250 --> 00:04:33.152 Há um sexto elemento, mas não há nada dentro. 00:04:33.152 --> 00:04:38.922 Pode ser bem confuso, o fato de ser zero e um, mas você pega o jeito. 00:04:38.922 --> 00:04:42.000 Muito bem, esse é nosso laço. 00:04:42.000 --> 00:04:46.362 Agora, se você quiser, você pode usar um laço do tipo "for" se você preferir. 00:04:46.362 --> 00:04:54.065 Para laços do tipo "for", dizemos apenas 'for' e var friendNum=0; e a condição . 00:04:54.065 --> 00:04:57.602 friendNum < myFriends.length; 00:04:57.602 --> 00:05:00.817 e o incremento: friendNum++ 00:05:00.817 --> 00:05:06.312 E então dentro do laço 'for', podemos colocar somente essa linha de código aqui. 00:05:06.312 --> 00:05:09.228 E apenas mudarei o 'x' para que você possa ver. 00:05:09.228 --> 00:05:11.534 O resultado é o mesmo. 00:05:12.874 --> 00:05:19.261 Você que decide qual usar, mas a questão é usar um laço com o array dará mais poder. 00:05:19.261 --> 00:05:22.000 Legendado por [Valter Bigeli] Revisado por [Fernando dos Reis]