Olá! Você sabia que em lógica da programação você pode trabalhar também com estruturas de repetição? E sim, nós temos diversas estruturas de repetição.
Por exemplo, temos o while, do-while ou fork. Temos também controle de fluxos, estruturas condicionais e uma infinidade de comandos. E cada um serve para determinada ação.
E sim, você em algum momento na tua vida vai acabar utilizando todos eles no mesmo código. Então é muito importante que você aprenda exatamente como que cada um funciona. Me acompanhe que eu te ensino!
E aí? Você já ouviu falar sobre laços de repetição? O que eles são?
Para o que eles servem e como eles funcionam, afinal? Então, os laços de repetição, eles servem para que a gente consiga executar tarefas automatizadas. Então existem vários tipos de laços de repetição, cada um vai funcionar de uma forma, mas no geral eles servem para automatização de tarefas.
Ok, mas quando que eu vou utilizar o laço de repetição na minha vida? Lembra quando você tinha que decorar a tabuada? Que era, um vezes um, igual a um.
Um vezes dois, igual a dois. Um vezes três, igual a três. Um vezes quatro, igual a quatro.
. . E eu peguei a tabuada do um porque ela é bem mais fácil para lembrar, né?
Mas é o seguinte, você ia do um até o dez ou dependendo do professor, do zero até o dez. Ou seja, percebe como você ficava repetindo a operação, um vezes um. Um vezes vez dois.
Um vezes três, um vezes quatro, um vezes cinco, um vezes seis, sete, oito, nove, dez? E sempre a mesma ação? É para isso que serve um laço de repetição, para ele ficar repetindo determinada operação ou determinado conjunto de operações, para se chegar a um determinado resultado.
O que a gente tem que tomar cuidado com o laço de repetição? É para não entrar num problemaço chamado loop infinito. O que é loop infinito?
É o processo nunca parar de rodar. E aí, o que vai acontecer? Computador vai travar.
Essa é a coisa principal que vai acontecer. E já aconteceu muito na minha vida quando eu comecei a aprender a programar. Para que isso não aconteça com você também, eu vou te ensinar que existem pontos de parada.
Todo o laço de repetição. . .
Gente, tudo na vida tem um limite, né? Laço de repetição também tem limite, então para isso a gente coloca aí pontos de parada. Ok, mas você falou da tabuada, né prof?
Mas eu não utilizo a tabuada assim. E agora? Para o que eu vou utilizar na indústria a tabuada?
Tem uma ideia bem legal para te passar. Você já viu aqueles robozinhos maravilhosos que ficam tirando o pó da nossa casa? Então, eles executam um laço de repetição.
Eles param quando? Depende, né? Quando a bateria está no final ou quando ele terminou a limpeza.
Quando, por exemplo, como que ele vai saber se ele verificou se ele terminou a limpeza? Ele vai ficar percorrendo aquele trecho de limpeza ali dentro da casa, aquela, aqueles metros quadrados, no caso. Lógico que você tem que tirar as coisas do caminho, por exemplo, o tapete, enfim, alguma coisa que ele vai parar, porque aí a gente chama de parada forçada.
Mas suponhamos que está no caminho ideal, ele só vai parar de funcionar quando ele terminar de limpar tudo que ele tiver que limpar, ou seja, quando ele não encontrar mais poeira ou quando a bateria estiver no final, ele vai voltar para carregar. Isso é um exemplo de laço de repetição que você pode utilizar para coisas assim do dia a dia. A automatização e o que a gente chama de indústria 4,0, mas não para por aí.
Os laços de repetição eles são utilizados para uma infinidade de outras coisas e nós temos vários tipos de laços de repetição. Nós temos o laço for e temos o laço while e o do-while, por exemplo. Cada um ele funciona de uma forma, que ele vai iniciar, que ele vai parar.
E agora vou te ensinar como você vai utilizar o while e o do-while. O while ele é conhecido como, ele faz a verificação, ou seja, a validação na entrada. Para isso eu vou criar um algoritmo com você em que a pessoa terá R$ 100 inicial e ela quer saber quanto tempo, quantos meses ela levará para ter R$ 200.
Então vem comigo aqui para a tela! Para isso eu vou criar algumas variáveis. Eu vou criar aqui a variável float capital, que vai ser de R$ 100 porque isso é o meu início.
Eu vou ter uma variável contador, que eu vou inicializar com zero, eu quero saber quantos meses. E aí, por que o while ele vai e faz a validação na entrada? Porque o while, o que enquanto, capital for menor ou igual a 200, eu quero que ele fique fazendo o cálculo, eu quero saber os juros que eu vou ganhar, então eu vou utilizar aqui a minha variável capital.
Ela vai receber o que? O que ela já tem, mais, agora eu vou começar os cálculos. O capital vezes a taxa de jurosz, que é cinco dividido por 100, no caso nesse banco aqui.
E aí eu vou incrementar o meu contador, que é o meu ctmês recebe o quanto ele tem, mais um. Então, cada vez que ele passar dentro do while, ele vai adicionar um e ele vai fazer o cálculo aqui do quanto eu tenho. Vou imprimir aqui na tela uma mensagenzinha que fala que o em %d meses o capital investido será de tantos reais.
Então aqui eu vou colocar ponto 2f, vírgula. Eu vou colocar aqui ctmês e capital. Por que que eu fiz isso, gente?
Porque %d é número inteiro, que eu quero saber em quantos meses, e capital eu quero saber quanto que eu vou ter atingido, né? E aqui a gente tem um errinho básico. Vamos ver o que aconteceu aqui.
Eu esqueci de colocar o %. Olha que legal, ele já dá aqui dicas, de erro. Vou rodar e o meu cont mês.
. . Por que deu erro?
Porque a gente não colocou o tipo. Olha só que legal, legal de um compilador. .
. Vou rodar de novo. .
. É que ele já vai te mostrando aqui os caminhos. Então em 15 meses o capital investido será de R$ 207,90.
Mas, eu não poderia terminar essa aula sem te mostrar o que que é o tal do do-while. Ele é um pouquinho diferente do while. Enquanto o while fez a verificação na entrada, ou seja, ele verificou se a condição é verdadeira, executou, e ok.
O do-while primeiro ele vai executar e depois ele vai validar. Vamos ver como? Então olha só, eu vou criar aqui mais um programinha dentro aqui do C e para isso eu vou fazer ele contar até cinco.
Então o do-while eu vou criar aqui uma variável int e vou colocar aqui cont, de contador, e eu vou inicializar com um, por exemplo, né? E ai o do-while vai ser assim, ó. Do, ou seja, faça!
O que eu quero que ele faça? Eu quero que ele fique mostrando para você na tela qual que é o número que ele está naquele momento. Eu vou colocar aqui, cont, contador e eu vou colocar aqui %d porque é um número inteiro e eu quero que ele pule a linha depois.
Aí vírgula, que eu vou colocar o cont, ponto e vírgula e eu vou colocar cont++ porque eu quero que cada vez ele fique somando. Cont++ é a mesma coisa que você colocar cont é igual a cont mais um, tá? Ele sempre vai incrementar um aqui.
E aí o while eu vou colocar aqui no final, enquanto o cont for menor ou igual a cinco porque eu quero que ele conte até cinco. Vou executar. E olha que legal, contador um, dois, três, quatro, cinco.
Então do, ele primeiro vai executar e depois ele vai validar, enquanto no anterior, que é while, ele primeiro verificou e daí que ele executou, ou não, o código. E agora a gente vai trabalhar com o laço de repetição for. O laço de repetição for, ele é e deve ser utilizado quando você sabe o número de interações que deve ocorrer dentro daquele loop.
Vamos a prática, criando um algoritmo para aprender a tabuada. Para isso eu vou começar aqui criando as variáveis. Vou criar aqui a variável num porque eu vou pedir para o usuário informar qual número ele quer aprender.
Vou criar um contador porque a gente precisa contar do um até o dez para calcular. E tem aqui uma variável result que eu vou inicializar com zero, que é onde eu vou calcular os resultados. Vou pedir aqui para o usuário qual tabuada ele quer aprender.
Então qual tabuada você quer aprender? E aí, lógico que eu vou pular uma linha aqui, né? Barra n e ponto e vírgula.
Eu vou ler do teclado ou aqui você nem precisa pular linha se você não quiser, porque quando a gente utiliza esse comandinho aqui, scanf, ele já vai fazer isso automaticamente. Então aqui %d porque eu vou ler um número inteiro, agora eu tenho que colocar o & num. Por que que eu coloquei o e comercial?
Porque eu quero que quando ele faça a leitura do teclado ele jogue nesse endereço, o & significa endereço, dessa variável aqui. Agora eu vou criar o nosso laço de repetição, que ele vai ter o início, então vou inicializar aqui o contador, vou inicializar em zero. Eu quero que ele funcione até que, o contador seja menor ou igual a dez, porque normalmente a tabuada vai do um até o dez e eu vou fazer um incremento do meu contador de um em um, por isso que aqui está cont++, abre e fecha chaves, porque eu quero que tudo ocorra aqui dentro.
Então eu tenho três critérios dentro do laço de repetição for. Tem aqui o início, até quando eu quero que ele funcione e como é o incremento, certo? Que eu vou fazer aqui dentro?
Eu vou fazer o cálculo. Então o meu resultado será o que? O contador vezes o número que o usuário informar.
E aí eu quero que ele faça a impressão do resultado na tela. Para isso, como o que eu vou colocar? São três números, o número vezes o outro número que vai ser igual a o outro número.
Por que eu coloquei tudo %d? Porque o número, o contador e o resultado são tudo números inteiros. E aí eu quero que no final ele pule uma linha para não ficar tudo grudado.
O que eu quero que ele mostre? O número que o usuário informou, o contador e o resultado porque é assim que a tabuada é calculada. Vamos executar?
Executei, qual tabuada você quer aprender? Eu quero a do dois. Ó, ele mostrou do zero até o dez, tá?
Se eu quisesse que ele começasse aqui, do um, eu vou mudar aqui o meu contador para um, tá? Então é dessa forma que eu vou mudar o início do meu laço de repetição. Vamos executar aqui de novo, então?
Eu vou rodar. . O que era a tabuada do dois de novo, começou do um.
Prof, mas eu quero a tabuada do cinco. . .
Vou rodar, aqui eu vou colocar a tabuada do cinco, ele vai colocar certinho pra você. Então, é dessa forma que a gente utiliza um laço de repetição for. Lembrando que eu tenho o número total de interações, que nesse caso aqui é até o tamanho máximo do contador e o tamanho máximo do nosso contador foi o dez.
Tá, mas se eu quiser que ele faça até o 20, prof? Ok, vamos lá. Eu vou mostrar para vocês.
Você vem até aqui o contador seja menor igual a 20. Vou executar. Eu vou colocar aqui a tabuada do cinco.
Olha que legal! Ele contou do um, o meu contador essa coluninha aqui, que veio até o 20. E é assim que você utiliza o laço de repetição for.
Te vejo na próxima! Agora a gente precisa dar uma parada aqui na programação e entender a importância de dominar o controle de fluxo e os loops também na programação, né? Então, por que isso é importante?
Motivo número um que eu poderia colocar para você: dominar as decisões. Então, a partir do momento que eu utilizo corretamente o controle de fluxos, e inclusive os loops dentro da programação, eu consigo tomar decisões mais assertivas. Eu não, o algoritmo.
Por que lembra que é você que está programando o algoritmo? Prof, quer dizer que eu posso utilizar um condicional com um loop junto? Sim, você pode utilizar o que você quiser dentro da programação, desde que seja de forma lógica e coerente!
Para que você também consiga fazer a execução de tarefas condicionais de forma assertiva. Isso é muito legal porque quando você tem que repetir inúmeras tarefas e verificar inúmeras condições, se você aplicar corretamente aqui, os fluxos, os loops de programação, você vai evitar que loops sejam executados de forma excessiva e você também vai conseguir evitar que eles não sejam criados, né? Porque muitas vezes a gente precisa, um loop resolveria a nossa vida, digamos que um for, que ele é um pouquinho mais simples de fazer, né?
Ele tem um início, tem o critério até onde que é para ele acontecer e a forma de incremento, por exemplo. Se você tem todas essas especificidades, tem todas essas informações, você pode utilizar ele. Agora, digamos que você não sabe quantas vezes tem que repetir aquela situação.
Por exemplo, se você vai investir na bolsa de valores, você não sabe por quanto tempo, quantos reais você tem que investir para chegar a determinado montante, por exemplo. E é o que acontece na predição de dados, se a gente for analisar a previsão do tempo. Então nada mais é do que um conjunto de estruturas condicionais e loops que são colocados de forma lógica para que isso aconteça.
Então a gente tem outros tipos de estruturas também, além da estrutura condicional if. Nós temos o switch. Switch significa escolha.
A tua tarefa de casa é procurar aí como funciona o switch e tentar aplicar ele. Sim, eu vou construir ele com você, mas é legal quando você faz aquela consulta, sabe? Pra ver como ele funciona.
A curiosidade faz com que a gente aprenda as coisas de forma assim, muito. . .
Não diria mais rápida, mas é assim, mais assertiva. Tudo o que a gente olha antes e às vezes entende, às vezes não entende, e depois você assiste a aula, o conteúdo, você consegue captar de uma forma um pouquinho melhor. Mas a gente tem também os loops while e o do-while.
Cada um vai servir pra uma situação. Então se você já sabe que a condição sempre vai ser verdadeira ou que aquilo tem que ser executado somente quando for verdade, você vai utilizar o while e vai colocar o código. Agora, se independente de ser verdade ou não, aquela condição obrigatoriamente, pelo uma vez, tem que executar aquele código, você vai utilizar o do-while.
Prof, eu posso utilizar o while e o do-while e o laço de repetição for, estrutura de sequência, tudo junto? Pode! Só que aí você tem que verificar como que você vai aplicar isso.
Para isso, a dica é utilizar fluxogramas. Quando você desenha e vê de forma gráfica como o teu algoritmo tem que funcionar, você evita inúmeros problemas. Tá aí uma excelente prática na programação.
E eu espero você na próxima aula.