[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.11,0:00:03.72,Default,,0000,0000,0000,,Voltamos com um programa \Nque imprime array de amigos. Dialogue: 0,0:00:03.72,0:00:07.01,Default,,0000,0000,0000,,Mas tem algo nisso que me deixa irritada. Dialogue: 0,0:00:07.01,0:00:11.30,Default,,0000,0000,0000,,Sempre que adiciono um novo amigo no array\Ntenho que adicionar um novo texto no fim. Dialogue: 0,0:00:11.30,0:00:13.38,Default,,0000,0000,0000,,Digamos que adicione Winston. Dialogue: 0,0:00:13.38,0:00:15.21,Default,,0000,0000,0000,,Ele não irá aparecer automaticamente. Dialogue: 0,0:00:15.21,0:00:22.62,Default,,0000,0000,0000,,Para aparecer, digito {\i1}text(MyFriends[3]){\i0}\Ne mudamos a posição y e veremos Winston. Dialogue: 0,0:00:23.16,0:00:24.33,Default,,0000,0000,0000,,É muito trabalhoso. Dialogue: 0,0:00:24.85,0:00:30.70,Default,,0000,0000,0000,,Sempre que adicionar algo ao array, quero\Nque o texto seja adicionado automaticamente Dialogue: 0,0:00:31.81,0:00:34.50,Default,,0000,0000,0000,,Você se lembra de quando aprendemos laços? Dialogue: 0,0:00:34.50,0:00:38.25,Default,,0000,0000,0000,,Laços de repetição foram um bom modo de\Nrepetir o mesmo trecho de código várias vezes. Dialogue: 0,0:00:38.25,0:00:43.27,Default,,0000,0000,0000,,Como, se quiséssemos ter várias árvores\Nenfileiradas ou um monte de balões. Dialogue: 0,0:00:43.27,0:00:48.91,Default,,0000,0000,0000,,Laços de repetição é uma excelente maneira\Nde rodar um pedaço de código em cada array Dialogue: 0,0:00:48.91,0:00:53.60,Default,,0000,0000,0000,,De fato, você verá laço de repetição em\Nquase todas as vezes que ver um array. Dialogue: 0,0:00:53.60,0:00:56.20,Default,,0000,0000,0000,,Eles trabalham muito bem em conjunto. Dialogue: 0,0:00:57.24,0:00:59.70,Default,,0000,0000,0000,,Vamos usar laços de repetição \Npara imprimir na tela nomes de amigos, Dialogue: 0,0:00:59.70,0:01:03.58,Default,,0000,0000,0000,,ao invés de usar todos esses comandos, \Npara mostrar o que eu quero dizer. Dialogue: 0,0:01:03.58,0:01:07.66,Default,,0000,0000,0000,,Comecemos com três perguntas que sempre\Nnos fazemos quando criamos um laço. Dialogue: 0,0:01:07.66,0:01:11.82,Default,,0000,0000,0000,,Primeiro, o que eu quero repetir? Veja.\NO que é repetido? O comando texto. Dialogue: 0,0:01:11.82,0:01:16.44,Default,,0000,0000,0000,,O que quero mudar toda vez?\NBem, deixe-me ver o que é diferente. Dialogue: 0,0:01:16.44,0:01:19.99,Default,,0000,0000,0000,,A posição 'y' e o atual 'index', certo ? Dialogue: 0,0:01:19.99,0:01:25.48,Default,,0000,0000,0000,,O número do amigo e a posição 'y'. Dialogue: 0,0:01:25.70,0:01:30.87,Default,,0000,0000,0000,,E quantas vezes devo repetir? Bem, \Nrepetiremos até que não haja mais amigos. Dialogue: 0,0:01:33.08,0:01:36.19,Default,,0000,0000,0000,,Então agora sabemos o que queremos,\Ne podemos criar nosso laço. Dialogue: 0,0:01:36.19,0:01:39.84,Default,,0000,0000,0000,,Começamos com a variável counter para \Nsabermos em que lugar do laço estamos. Dialogue: 0,0:01:39.84,0:01:43.35,Default,,0000,0000,0000,,Então vou dizer {\i1}var friendNum = 0;{\i0} Dialogue: 0,0:01:44.19,0:01:49.51,Default,,0000,0000,0000,,Inicializaremos como zero, pois ele é o\No primeiro elemento do array, e não 1. Dialogue: 0,0:01:49.51,0:01:57.03,Default,,0000,0000,0000,,Teremos o nosso laço while, então diremos \N{\i1}while(friendNum < myfriends.length){\i0}. Dialogue: 0,0:01:57.03,0:02:02.43,Default,,0000,0000,0000,,Iremos comparar o valor atual de "counter"\Ncom a variável número de objetos no array. Dialogue: 0,0:02:03.70,0:02:06.91,Default,,0000,0000,0000,,Dentro do laço, será onde \Nusaremo o comando "text". Dialogue: 0,0:02:06.91,0:02:10.78,Default,,0000,0000,0000,,Diremos, {\i1}text(myFriends){\i0}\N- e aqui, ao invés do número Dialogue: 0,0:02:10.78,0:02:13.58,Default,,0000,0000,0000,,colocaremos {\i1}friendNum{\i0} porque representa\No número atual. Dialogue: 0,0:02:14.22,0:02:17.93,Default,,0000,0000,0000,,E então colocaremos apenas uma posição. Dialogue: 0,0:02:17.93,0:02:21.06,Default,,0000,0000,0000,,Isto nos dá um pequeno erro de\Nrepetição infinita Dialogue: 0,0:02:21.06,0:02:25.34,Default,,0000,0000,0000,,porque não mudamos de fato nada\Nno {\i1}friendNum{\i0}. Dialogue: 0,0:02:25.34,0:02:27.77,Default,,0000,0000,0000,,Lembre-se, precisamos incrementar\NfriendNum toda vez Dialogue: 0,0:02:27.77,0:02:31.54,Default,,0000,0000,0000,,caso contrário o laço sempre se repetirá\Npois a condição sempre será verdadeira. Dialogue: 0,0:02:31.90,0:02:38.03,Default,,0000,0000,0000,,Vi que algo aconteceu. Comentarei o outro\Ncódigo para poder ver o que houve. Dialogue: 0,0:02:38.03,0:02:42.89,Default,,0000,0000,0000,,O que temos é que mostramos todos os\Nnomes, mas eles um em cima do outro. Dialogue: 0,0:02:42.89,0:02:45.02,Default,,0000,0000,0000,,Então, precisamos mudar posição 'y'. Dialogue: 0,0:02:45.02,0:02:49.58,Default,,0000,0000,0000,,Vamos dizer apenas 'friendNum * 30'. Dialogue: 0,0:02:49.98,0:02:54.61,Default,,0000,0000,0000,,Ficou bom, mas Shophia está fora da tela e\Nela não vai ficar feliz se descobrir isso. Dialogue: 0,0:02:54.61,0:02:59.22,Default,,0000,0000,0000,,Então, vamos adicionar apenas 30. Agora\Ntodos aparecendo com 30. Dialogue: 0,0:03:00.71,0:03:03.85,Default,,0000,0000,0000,,Agora você verá que temos um laço para\Nimprimindo nosso array. Dialogue: 0,0:03:03.85,0:03:08.58,Default,,0000,0000,0000,,Isso significa que se adicionarmos mais\Npessoas como OhNoesGuy, ou até mesmo Sal, Dialogue: 0,0:03:08.58,0:03:13.38,Default,,0000,0000,0000,,se eu incluí-los no array, então Sal será\Nmeu amigo. Legal! Agora ele é meu colega. Dialogue: 0,0:03:13.38,0:03:20.09,Default,,0000,0000,0000,,Você vê que aparece automaticamente novos\Namigos pois está percorrendo todo o array. Dialogue: 0,0:03:20.09,0:03:23.67,Default,,0000,0000,0000,,Então podemos apagar nosso código antigo.\NNão precisamos mais dele. Dialogue: 0,0:03:24.03,0:03:27.70,Default,,0000,0000,0000,,Vamos dar uma olhada nesse código\Nnovamente e revisar o que ele faz. Dialogue: 0,0:03:28.56,0:03:31.04,Default,,0000,0000,0000,,Começamos com {\i1}friendNum = 0;{\i0}. Dialogue: 0,0:03:31.26,0:03:33.87,Default,,0000,0000,0000,,Verificamos se {\i1}friendNum{\i0} é menor que\No tamanho atual. Dialogue: 0,0:03:33.87,0:03:37.53,Default,,0000,0000,0000,,Então imagine que zero é menor que seis.\NO que é verdade. Dialogue: 0,0:03:37.94,0:03:41.64,Default,,0000,0000,0000,,Então vamos pra cá e dizemos que 'text',\Né igual valor de firendNum. Dialogue: 0,0:03:41.64,0:03:43.89,Default,,0000,0000,0000,,Isso vai virar zero, a primeira vez. Dialogue: 0,0:03:43.89,0:03:47.23,Default,,0000,0000,0000,,E então 30 mais zero 30. Dialogue: 0,0:03:47.23,0:03:53.18,Default,,0000,0000,0000,,Sophia aparece na posição 10 e 30.\NÉ o que isso faz. Dialogue: 0,0:03:53.18,0:03:55.82,Default,,0000,0000,0000,,E então {\i1}friendNum++{\i0}, e vira 1. Dialogue: 0,0:03:55.82,0:03:59.80,Default,,0000,0000,0000,,E código recomeça e valida, "Ok, 1 é menor\Nque o {\i1}myFriends.Lenght{\i0}? Sim é." Dialogue: 0,0:03:59.80,0:04:01.72,Default,,0000,0000,0000,,E continua e continua e continua. Dialogue: 0,0:04:01.72,0:04:04.25,Default,,0000,0000,0000,,E então chegamos ao Sal, lembre, Dialogue: 0,0:04:06.14,0:04:09.10,Default,,0000,0000,0000,,Sal é atualmente o sexto elemento\Nno array, mas seu índice é 5, Dialogue: 0,0:04:09.10,0:04:10.81,Default,,0000,0000,0000,,já que começamos com zero. Dialogue: 0,0:04:10.81,0:04:13.52,Default,,0000,0000,0000,,Então, cinco é menor que seis? Sim. Dialogue: 0,0:04:13.52,0:04:15.80,Default,,0000,0000,0000,,Então vai imprimir 'myFriends' cinco. Dialogue: 0,0:04:15.80,0:04:21.33,Default,,0000,0000,0000,,E então vira seis e validamos. \N"Seis é menor que seis?" Não, é igual. Dialogue: 0,0:04:21.33,0:04:25.52,Default,,0000,0000,0000,,Então será falso. Nunca \Napresentaremos o sexto elemento. Dialogue: 0,0:04:25.52,0:04:29.25,Default,,0000,0000,0000,,O que é bom porque não \Nhá nada na sexta posição. Dialogue: 0,0:04:29.25,0:04:33.15,Default,,0000,0000,0000,,Há um sexto elemento, \Nmas não há nada dentro. Dialogue: 0,0:04:33.15,0:04:38.92,Default,,0000,0000,0000,,Pode ser bem confuso, o fato de ser \Nzero e um, mas você pega o jeito. Dialogue: 0,0:04:38.92,0:04:42.00,Default,,0000,0000,0000,,Muito bem, esse é nosso laço. Dialogue: 0,0:04:42.00,0:04:46.36,Default,,0000,0000,0000,,Agora, se você quiser, você pode usar \Num laço do tipo "for" se você preferir. Dialogue: 0,0:04:46.36,0:04:54.06,Default,,0000,0000,0000,,Para laços do tipo "for", dizemos apenas\N'for' e {\i1}var friendNum=0;{\i0} e a condição . Dialogue: 0,0:04:54.06,0:04:57.60,Default,,0000,0000,0000,,{\i1}friendNum < myFriends.length;{\i0} Dialogue: 0,0:04:57.60,0:05:00.82,Default,,0000,0000,0000,,e o incremento: {\i1}friendNum++{\i0} Dialogue: 0,0:05:00.82,0:05:06.31,Default,,0000,0000,0000,,E então dentro do laço 'for', podemos \Ncolocar somente essa linha de código aqui. Dialogue: 0,0:05:06.31,0:05:09.23,Default,,0000,0000,0000,,E apenas mudarei o 'x' \Npara que você possa ver. Dialogue: 0,0:05:09.23,0:05:11.53,Default,,0000,0000,0000,,O resultado é o mesmo. Dialogue: 0,0:05:12.87,0:05:19.26,Default,,0000,0000,0000,,Você que decide qual usar, mas a questão é\Nusar um laço com o array dará mais poder. Dialogue: 0,0:05:19.26,0:05:22.00,Default,,0000,0000,0000,,Legendado por [Valter Bigeli]\NRevisado por [Fernando dos Reis]