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]