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