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]