Voltamos com um programa que imprime array de amigos.
Mas tem algo nisso que me deixa irritada.
Sempre que adiciono um novo amigo no array tenho que adicionar um novo texto no fim.
Digamos que adicione Winston.
Ele não irá aparecer automaticamente.
Para aparecer, digito text(MyFriends[3]) e mudamos a posição y e veremos Winston.
É muito trabalhoso.
Sempre que adicionar algo ao array, quero que o texto seja adicionado automaticamente
Você se lembra de quando aprendemos laços?
Laços de repetição foram um bom modo de repetir o mesmo trecho de código várias vezes.
Como, se quiséssemos ter várias árvores enfileiradas ou um monte de balões.
Laços de repetição é uma excelente maneira de rodar um pedaço de código em cada array
De fato, você verá laço de repetição em quase todas as vezes que ver um array.
Eles trabalham muito bem em conjunto.
Vamos usar laços de repetição para imprimir na tela nomes de amigos,
ao invés de usar todos esses comandos, para mostrar o que eu quero dizer.
Comecemos com três perguntas que sempre nos fazemos quando criamos um laço.
Primeiro, o que eu quero repetir? Veja. O que é repetido? O comando texto.
O que quero mudar toda vez? Bem, deixe-me ver o que é diferente.
A posição 'y' e o atual 'index', certo ?
O número do amigo e a posição 'y'.
E quantas vezes devo repetir? Bem, repetiremos até que não haja mais amigos.
Então agora sabemos o que queremos, e podemos criar nosso laço.
Começamos com a variável counter para sabermos em que lugar do laço estamos.
Então vou dizer var friendNum = 0;
Inicializaremos como zero, pois ele é o o primeiro elemento do array, e não 1.
Teremos o nosso laço while, então diremos while(friendNum < myfriends.length).
Iremos comparar o valor atual de "counter" com a variável número de objetos no array.
Dentro do laço, será onde usaremo o comando "text".
Diremos, text(myFriends) - e aqui, ao invés do número
colocaremos friendNum porque representa o número atual.
E então colocaremos apenas uma posição.
Isto nos dá um pequeno erro de repetição infinita
porque não mudamos de fato nada no friendNum.
Lembre-se, precisamos incrementar friendNum toda vez
caso contrário o laço sempre se repetirá pois a condição sempre será verdadeira.
Vi que algo aconteceu. Comentarei o outro código para poder ver o que houve.
O que temos é que mostramos todos os nomes, mas eles um em cima do outro.
Então, precisamos mudar posição 'y'.
Vamos dizer apenas 'friendNum * 30'.
Ficou bom, mas Shophia está fora da tela e ela não vai ficar feliz se descobrir isso.
Então, vamos adicionar apenas 30. Agora todos aparecendo com 30.
Agora você verá que temos um laço para imprimindo nosso array.
Isso significa que se adicionarmos mais pessoas como OhNoesGuy, ou até mesmo Sal,
se eu incluí-los no array, então Sal será meu amigo. Legal! Agora ele é meu colega.
Você vê que aparece automaticamente novos amigos pois está percorrendo todo o array.
Então podemos apagar nosso código antigo. Não precisamos mais dele.
Vamos dar uma olhada nesse código novamente e revisar o que ele faz.
Começamos com friendNum = 0;.
Verificamos se friendNum é menor que o tamanho atual.
Então imagine que zero é menor que seis. O que é verdade.
Então vamos pra cá e dizemos que 'text', é igual valor de firendNum.
Isso vai virar zero, a primeira vez.
E então 30 mais zero 30.
Sophia aparece na posição 10 e 30. É o que isso faz.
E então friendNum++, e vira 1.
E código recomeça e valida, "Ok, 1 é menor que o myFriends.Lenght? Sim é."
E continua e continua e continua.
E então chegamos ao Sal, lembre,
Sal é atualmente o sexto elemento no array, mas seu índice é 5,
já que começamos com zero.
Então, cinco é menor que seis? Sim.
Então vai imprimir 'myFriends' cinco.
E então vira seis e validamos. "Seis é menor que seis?" Não, é igual.
Então será falso. Nunca apresentaremos o sexto elemento.
O que é bom porque não há nada na sexta posição.
Há um sexto elemento, mas não há nada dentro.
Pode ser bem confuso, o fato de ser zero e um, mas você pega o jeito.
Muito bem, esse é nosso laço.
Agora, se você quiser, você pode usar um laço do tipo "for" se você preferir.
Para laços do tipo "for", dizemos apenas 'for' e var friendNum=0; e a condição .
friendNum < myFriends.length;
e o incremento: friendNum++
E então dentro do laço 'for', podemos colocar somente essa linha de código aqui.
E apenas mudarei o 'x' para que você possa ver.
O resultado é o mesmo.
Você que decide qual usar, mas a questão é usar um laço com o array dará mais poder.
Legendado por [Valter Bigeli] Revisado por [Fernando dos Reis]