[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.70,0:00:02.17,Default,,0000,0000,0000,,Vamos falar sobre loops. Dialogue: 0,0:00:02.17,0:00:04.39,Default,,0000,0000,0000,,Temos um loop while aqui.\NE com algumas Dialogue: 0,0:00:04.39,0:00:06.30,Default,,0000,0000,0000,,linhas de código, posso escrever\Nesta mensagem Dialogue: 0,0:00:06.30,0:00:07.45,Default,,0000,0000,0000,,até o final da tela Dialogue: 0,0:00:07.45,0:00:09.40,Default,,0000,0000,0000,,Se eu for em frente e mudar\Na mensagem assim, Dialogue: 0,0:00:09.40,0:00:10.23,Default,,0000,0000,0000,,para melhorá-la, Dialogue: 0,0:00:10.23,0:00:11.70,Default,,0000,0000,0000,,todas elas mudam. Dialogue: 0,0:00:11.93,0:00:14.00,Default,,0000,0000,0000,,Então, como isso está funcionando? Dialogue: 0,0:00:14.00,0:00:15.58,Default,,0000,0000,0000,,Bem, podemos rever\Nesse código Dialogue: 0,0:00:15.58,0:00:17.84,Default,,0000,0000,0000,,daqui a pouco. Mas primeiro vamos\Nvoltar um pouco Dialogue: 0,0:00:17.84,0:00:20.01,Default,,0000,0000,0000,,e pensar como escreveríamos\Neste programa Dialogue: 0,0:00:20.01,0:00:22.94,Default,,0000,0000,0000,,usando apenas o que sabemos até \Nagora sem usar loops. Dialogue: 0,0:00:22.94,0:00:23.84,Default,,0000,0000,0000,,Para isso, Dialogue: 0,0:00:23.84,0:00:25.51,Default,,0000,0000,0000,,vamos escrever um monte de text() Dialogue: 0,0:00:25.51,0:00:26.93,Default,,0000,0000,0000,,várias vezes, certo? Dialogue: 0,0:00:26.93,0:00:28.86,Default,,0000,0000,0000,,Vamos escrever "text()", "message"... Dialogue: 0,0:00:28.86,0:00:30.60,Default,,0000,0000,0000,,vou colocá-lo em primeiro lugar, Dialogue: 0,0:00:30.60,0:00:32.51,Default,,0000,0000,0000,,e agora é só uma questão de repetir isso Dialogue: 0,0:00:32.51,0:00:33.55,Default,,0000,0000,0000,,várias vezes Dialogue: 0,0:00:33.55,0:00:34.66,Default,,0000,0000,0000,,para então, Dialogue: 0,0:00:34.66,0:00:36.53,Default,,0000,0000,0000,,chegarmos até o final Dialogue: 0,0:00:36.53,0:00:38.95,Default,,0000,0000,0000,,E isso vai dar trabalho, certo? Dialogue: 0,0:00:38.95,0:00:41.19,Default,,0000,0000,0000,,Porque o final é realmente muito longe. Dialogue: 0,0:00:41.19,0:00:43.72,Default,,0000,0000,0000,,E é ainda pior se você em seguida\Napontar para mim Dialogue: 0,0:00:43.72,0:00:46.64,Default,,0000,0000,0000,,"hey, na verdade aqui não era 70.\NPrecisa estar mais perto, Dialogue: 0,0:00:46.64,0:00:47.54,Default,,0000,0000,0000,,"precisa ser, tipo, 60." Dialogue: 0,0:00:47.54,0:00:49.19,Default,,0000,0000,0000,,E agora afeta este aqui, Dialogue: 0,0:00:49.19,0:00:51.14,Default,,0000,0000,0000,,porque ele também precisa ser menor. Dialogue: 0,0:00:51.14,0:00:52.96,Default,,0000,0000,0000,,E assim por diante, Dialogue: 0,0:00:52.96,0:00:55.29,Default,,0000,0000,0000,,à medida que temos mais \Nchamadas de text(). Dialogue: 0,0:00:55.29,0:00:58.24,Default,,0000,0000,0000,,E, de fato, desta forma vai demorar \Npara chegar ao final. Dialogue: 0,0:00:58.24,0:01:00.25,Default,,0000,0000,0000,,Então, isso é mesmo massante, Dialogue: 0,0:01:00.25,0:01:02.37,Default,,0000,0000,0000,,e felizmente temos loops para nos ajudar. Dialogue: 0,0:01:02.37,0:01:05.32,Default,,0000,0000,0000,,A partir de agora, sempre que você \Nver um código repetitivo assim, Dialogue: 0,0:01:05.32,0:01:07.63,Default,,0000,0000,0000,,pense: "Eu pdoeria usar um loop?" Dialogue: 0,0:01:07.63,0:01:09.37,Default,,0000,0000,0000,,Um loop vai nos deixar repetir Dialogue: 0,0:01:09.37,0:01:13.22,Default,,0000,0000,0000,,este pedaço de código sempre, apenas\Nfazendo pequenas mudanças a cada vez. Dialogue: 0,0:01:13.22,0:01:16.02,Default,,0000,0000,0000,,Aqui está como reescreveríamos \Nesse código com um loop. Dialogue: 0,0:01:16.02,0:01:18.18,Default,,0000,0000,0000,,Para começar, é preciso digitar "while", Dialogue: 0,0:01:18.18,0:01:20.44,Default,,0000,0000,0000,,os parênteses, e as chaves. Dialogue: 0,0:01:20.61,0:01:22.14,Default,,0000,0000,0000,,Vamos receber essa mensagem, Dialogue: 0,0:01:22.14,0:01:23.60,Default,,0000,0000,0000,,mas só porque não \Nterminamos ainda. Dialogue: 0,0:01:23.60,0:01:25.99,Default,,0000,0000,0000,,Não se preocupe, ela vai \Nembora quando terminar. Dialogue: 0,0:01:26.03,0:01:27.77,Default,,0000,0000,0000,,Cada vez que você escrever um loop Dialogue: 0,0:01:27.77,0:01:28.89,Default,,0000,0000,0000,,você precisa responder Dialogue: 0,0:01:28.89,0:01:30.17,Default,,0000,0000,0000,,a três perguntas-chave. Dialogue: 0,0:01:30.95,0:01:32.55,Default,,0000,0000,0000,,E aqui estão elas: Dialogue: 0,0:01:32.84,0:01:35.04,Default,,0000,0000,0000,,Então, a primeira pergunta é: Dialogue: 0,0:01:35.04,0:01:37.17,Default,,0000,0000,0000,,"O que eu quero repetir?" Dialogue: 0,0:01:37.17,0:01:38.95,Default,,0000,0000,0000,,E tudo que vamos querer repetir Dialogue: 0,0:01:38.95,0:01:41.03,Default,,0000,0000,0000,,precisa ir em entre estas chaves. Dialogue: 0,0:01:41.47,0:01:44.17,Default,,0000,0000,0000,,Queremos repetir a chamada \Nde "text()" neste caso. Dialogue: 0,0:01:44.17,0:01:45.91,Default,,0000,0000,0000,,Então vá em frente e coloque-o aqui. Dialogue: 0,0:01:46.23,0:01:47.82,Default,,0000,0000,0000,,Mas é um pouco bobo, né? Dialogue: 0,0:01:47.82,0:01:49.76,Default,,0000,0000,0000,,Porque agora vamos apenas repetir Dialogue: 0,0:01:49.76,0:01:51.58,Default,,0000,0000,0000,,a mesma chamada de text() sempre Dialogue: 0,0:01:51.58,0:01:53.05,Default,,0000,0000,0000,,o que não está muito certo, né? Dialogue: 0,0:01:53.05,0:01:54.76,Default,,0000,0000,0000,,precisamos de algo que \Nesteja mudando. Dialogue: 0,0:01:54.76,0:01:56.33,Default,,0000,0000,0000,,Isso nos leva à segunda pergunta, que é: Dialogue: 0,0:01:56.33,0:01:58.00,Default,,0000,0000,0000,,"O que eu quero mudar de cada vez?" Dialogue: 0,0:01:58.00,0:01:59.78,Default,,0000,0000,0000,,Queremos mudar esta \Nposição "y", certo? Dialogue: 0,0:01:59.78,0:02:01.45,Default,,0000,0000,0000,,Queremos que "y" se torne 60 Dialogue: 0,0:02:01.45,0:02:02.76,Default,,0000,0000,0000,,depois que se torne 80 Dialogue: 0,0:02:02.76,0:02:05.05,Default,,0000,0000,0000,,Então, vamos criar uma variável Dialogue: 0,0:02:05.05,0:02:07.60,Default,,0000,0000,0000,,chamada "y", porque é a posição y. Dialogue: 0,0:02:07.60,0:02:10.23,Default,,0000,0000,0000,,Vamos declarar uma variável aqui. Dialogue: 0,0:02:10.23,0:02:11.84,Default,,0000,0000,0000,,Vou iniciá-la em 40. Dialogue: 0,0:02:12.08,0:02:13.09,Default,,0000,0000,0000,,E agora, finalmente, Dialogue: 0,0:02:13.09,0:02:14.41,Default,,0000,0000,0000,,só precisamos mudar "y". Dialogue: 0,0:02:14.41,0:02:15.78,Default,,0000,0000,0000,,Podemos fazer isso aqui para baixo Dialogue: 0,0:02:15.78,0:02:17.57,Default,,0000,0000,0000,,podemos dizer "y é igual a y mais 20" Dialogue: 0,0:02:17.57,0:02:19.68,Default,,0000,0000,0000,,e "y" irá aumentar toda vez. Dialogue: 0,0:02:19.68,0:02:21.62,Default,,0000,0000,0000,,Na verdade, podemos usar nossa lição Dialogue: 0,0:02:21.62,0:02:23.40,Default,,0000,0000,0000,,de atalhos de incremento aqui. Dialogue: 0,0:02:23.40,0:02:24.100,Default,,0000,0000,0000,,Nós podemos apenas ir em frente Dialogue: 0,0:02:24.100,0:02:26.47,Default,,0000,0000,0000,,e usar o atalho. Dialogue: 0,0:02:26.64,0:02:28.42,Default,,0000,0000,0000,,Então, isso é fantástico. Dialogue: 0,0:02:28.42,0:02:30.93,Default,,0000,0000,0000,,E só precisamos fazer a pergutna três agora. \NQue é: Dialogue: 0,0:02:30.93,0:02:32.74,Default,,0000,0000,0000,,"Por quanto tempo devemos \Nrepetir isso?" Dialogue: 0,0:02:32.74,0:02:34.92,Default,,0000,0000,0000,,Queremos repetir isso várias vezes, Dialogue: 0,0:02:34.92,0:02:37.02,Default,,0000,0000,0000,,mas, não vamos repetir para \Nsempre, certo? Dialogue: 0,0:02:37.02,0:02:38.11,Default,,0000,0000,0000,,Se fizermos isso, Dialogue: 0,0:02:38.11,0:02:39.75,Default,,0000,0000,0000,,primeiro que é um tempo muito \Nlongo para esperar, Dialogue: 0,0:02:39.75,0:02:41.53,Default,,0000,0000,0000,,e, segundo, que pode até \Ntravar o seu browser. Dialogue: 0,0:02:41.53,0:02:42.98,Default,,0000,0000,0000,,Mas esperamos que não. Dialogue: 0,0:02:42.98,0:02:44.78,Default,,0000,0000,0000,,De verdade, só queremos fazer isso Dialogue: 0,0:02:44.78,0:02:46.98,Default,,0000,0000,0000,,até chegarmos no final da página, certo? Dialogue: 0,0:02:46.98,0:02:50.53,Default,,0000,0000,0000,,O que significa que queremos seguir\Nenquanto "y"for menos que 400. Dialogue: 0,0:02:50.57,0:02:52.32,Default,,0000,0000,0000,,Portanto, colocamos isso aqui, Dialogue: 0,0:02:52.32,0:02:53.39,Default,,0000,0000,0000,,e está pronto! Dialogue: 0,0:02:53.39,0:02:55.35,Default,,0000,0000,0000,,Temos esta mensagem está sendo escrita Dialogue: 0,0:02:55.35,0:02:56.53,Default,,0000,0000,0000,,até o final da tela. Dialogue: 0,0:02:56.53,0:02:58.30,Default,,0000,0000,0000,,E você pode ver que isso é \Nbem mais simples Dialogue: 0,0:02:58.30,0:02:59.64,Default,,0000,0000,0000,,que nossa abordagem anterior, Dialogue: 0,0:02:59.64,0:03:01.73,Default,,0000,0000,0000,,que demorou pra escrevermos. Dialogue: 0,0:03:01.73,0:03:03.82,Default,,0000,0000,0000,,e nem chegamos à um quarto disso. Dialogue: 0,0:03:03.82,0:03:05.91,Default,,0000,0000,0000,,Assim, podemos nos livrar disso, Dialogue: 0,0:03:05.91,0:03:07.34,Default,,0000,0000,0000,,e aí temos o nosso programa. Dialogue: 0,0:03:07.81,0:03:10.71,Default,,0000,0000,0000,,Agora, vamos tentar entender \Nmelhor o que está acontecendo. Dialogue: 0,0:03:10.71,0:03:12.46,Default,,0000,0000,0000,,Vou imprimir na tela Dialogue: 0,0:03:12.46,0:03:13.52,Default,,0000,0000,0000,,"y" de cada vez. Dialogue: 0,0:03:13.52,0:03:15.72,Default,,0000,0000,0000,,Eu vou dizer "y é agora" e, aqui embaixo, Dialogue: 0,0:03:15.72,0:03:18.16,Default,,0000,0000,0000,,vou colocar "y" no final da mensagem, Dialogue: 0,0:03:18.16,0:03:19.42,Default,,0000,0000,0000,,para que possamos vê-lo. Dialogue: 0,0:03:19.42,0:03:20.38,Default,,0000,0000,0000,,Então, no momento, Dialogue: 0,0:03:20.38,0:03:22.62,Default,,0000,0000,0000,,o valor está mudando a cada 20, certo? Dialogue: 0,0:03:22.62,0:03:23.100,Default,,0000,0000,0000,,E podemos mudar isso Dialogue: 0,0:03:23.100,0:03:25.81,Default,,0000,0000,0000,,apenas alterando essa variável aqui. Dialogue: 0,0:03:25.81,0:03:28.33,Default,,0000,0000,0000,,Ou você pode mudar para, tipo, 50. Dialogue: 0,0:03:28.69,0:03:30.99,Default,,0000,0000,0000,,E agora, agora estão mudando a cada 50.\N Dialogue: 0,0:03:30.99,0:03:31.86,Default,,0000,0000,0000,,Da mesma forma, Dialogue: 0,0:03:31.86,0:03:33.79,Default,,0000,0000,0000,,você pode brincar com outros valores Dialogue: 0,0:03:33.79,0:03:35.11,Default,,0000,0000,0000,,para alterá-los. Dialogue: 0,0:03:35.11,0:03:36.92,Default,,0000,0000,0000,,E você pode ver como isso afeta Dialogue: 0,0:03:36.92,0:03:39.17,Default,,0000,0000,0000,,onde o programa para. Dialogue: 0,0:03:40.57,0:03:41.58,Default,,0000,0000,0000,,Assim, para entender isso, Dialogue: 0,0:03:43.61,0:03:45.13,Default,,0000,0000,0000,,você pode pensar nele como \Numa condicional. Dialogue: 0,0:03:45.13,0:03:47.34,Default,,0000,0000,0000,,Nós temos nossa expressão booleana aqui Dialogue: 0,0:03:47.34,0:03:48.78,Default,,0000,0000,0000,,como você já aprendeu. Dialogue: 0,0:03:48.78,0:03:51.67,Default,,0000,0000,0000,,Então executamos o corpo da... declaração, Dialogue: 0,0:03:51.67,0:03:52.45,Default,,0000,0000,0000,,esta parte, Dialogue: 0,0:03:52.45,0:03:54.27,Default,,0000,0000,0000,,somente se a expressão é verdadeira. Dialogue: 0,0:03:54.27,0:03:56.42,Default,,0000,0000,0000,,E caso contrário, pulamos para o fim. Dialogue: 0,0:03:56.42,0:03:58.08,Default,,0000,0000,0000,,Mas o é interessante é que, Dialogue: 0,0:03:58.08,0:03:59.73,Default,,0000,0000,0000,,com um loop "while" Dialogue: 0,0:03:59.73,0:04:01.64,Default,,0000,0000,0000,,temos algo secreto acontecendo\Nna parte inferior. Dialogue: 0,0:04:01.64,0:04:04.30,Default,,0000,0000,0000,,que diz "volte para o início do loop". Dialogue: 0,0:04:05.22,0:04:07.20,Default,,0000,0000,0000,,E o que esta instrução secreta significa Dialogue: 0,0:04:07.20,0:04:10.51,Default,,0000,0000,0000,,é que em vez de sair e seguir em frente, Dialogue: 0,0:04:10.51,0:04:12.04,Default,,0000,0000,0000,,como com uma condicional, Dialogue: 0,0:04:12.04,0:04:14.04,Default,,0000,0000,0000,,cada vez que executamos o corpo do loop Dialogue: 0,0:04:14.04,0:04:15.52,Default,,0000,0000,0000,,nós vamos voltar e verificar Dialogue: 0,0:04:15.52,0:04:17.23,Default,,0000,0000,0000,,se a condição ainda é verdadeira. Dialogue: 0,0:04:17.23,0:04:18.04,Default,,0000,0000,0000,,E se for, Dialogue: 0,0:04:18.04,0:04:20.08,Default,,0000,0000,0000,,vamos apenas repetir mais uma vez. Dialogue: 0,0:04:20.08,0:04:22.83,Default,,0000,0000,0000,,E, assim como você deve ter adivinhado,\Na segunda vez que repetimos Dialogue: 0,0:04:22.83,0:04:23.77,Default,,0000,0000,0000,,faremos a mesma coisa. Dialogue: 0,0:04:23.77,0:04:25.62,Default,,0000,0000,0000,,"Volte para o início, Dialogue: 0,0:04:25.62,0:04:28.16,Default,,0000,0000,0000,,'y' ainda é menor do que 279?" Dialogue: 0,0:04:28.58,0:04:30.44,Default,,0000,0000,0000,,E se for, vamos repetir mais uma vez Dialogue: 0,0:04:30.44,0:04:31.65,Default,,0000,0000,0000,,e continuar verificando. Dialogue: 0,0:04:31.65,0:04:33.92,Default,,0000,0000,0000,,E se não for, voltamos para o início aqui. Dialogue: 0,0:04:33.92,0:04:34.73,Default,,0000,0000,0000,,E, finalmente, Dialogue: 0,0:04:34.73,0:04:36.02,Default,,0000,0000,0000,,saímos do loop, Dialogue: 0,0:04:36.02,0:04:38.50,Default,,0000,0000,0000,,e continuamos com nosso programa. Dialogue: 0,0:04:38.50,0:04:40.06,Default,,0000,0000,0000,,Excelente! Existem maneiras mais Dialogue: 0,0:04:40.06,0:04:41.40,Default,,0000,0000,0000,,interessantes de usar laços Dialogue: 0,0:04:41.40,0:04:42.55,Default,,0000,0000,0000,,que aprenderemos em breve. Dialogue: 0,0:04:42.55,0:04:45.59,Default,,0000,0000,0000,,Mas por enquanto, você está pronto\Npra um ótimo começo. Dialogue: 0,0:04:45.59,0:04:46.87,Default,,0000,0000,0000,,Legendado por [Pablo Vieira]\NRevisado por [Cainã Perri]