Exercícios Resolvidos de Laços de repetição

Ver Teoria

Enunciado

Reescreva o seguinte laço for com um laço while.

Passo 1

Opa! Fala aí! Nesse exercício, a ideia é certificar que a gente tá voando nas diferenças entre os laços for e while.

Então, pra gente reescrever como um laço while, precisamos entender bem o que tá acontecendo nesse for. A gente tá ligado que a função range() cria uma lista com todos os elementos no intervalo entre os valores que a gente passar como parâmetro, incluindo o primeiro, mas não incluindo o último! Por isso, range(1, 10) vai corresponder a seguinte lista:

Obs: tu não precisa lembrar como faz pra ver o resultado do range(), só precisa lembrar do funcionamento. Eu só mostrei pra você entender, não pra decorar, ok?!

Beleza! A quantidade de vezes que o laço for se repete é a mesma quantidade de elementos da lista que a gente tá usando na iteração. Nesse caso, a lista que estamos usando é essa que a gente acabou de ver do range, então são 9 vezes.

Outra coisa sobre o laço for é que, a cada loop, o valor da variável de iteração (nesse caso, a variável i) é igual a um elemento diferente da lista a cada iteração. No código do enunciado, o professor criou uma variável s = 0 fora do loop, e a cada loop ele acrescentou i na variável s. Pô, se i é um elemento da lista a cada repetição, então no fim do programa a gente vai ter o somatório da lista na variável s.

Substituindo i pelos elementos da lista:

Show! Agora sacamos o que o loop tá fazendo. Precisamos repetir a proeza utilizando, dessa vez, um laço while. Bora lá!

Passo 2

Cara, a gente precisa calcular o somatório de todos os números entre 1 e 9. Pra isso, vamos criar uma variável pra armazenar o somatório igual o professor fez com o laço for:

Mas vamos criar também uma variável chamada “i”, e vamos fazer ela variar entre 1 e 9. Aí a gente repete o código s = s + i até i ser maior que 9.

Pronto! Mas se a gente executar esse programa, ele NUNCA vai terminar. NUNCA!

Isso é porque a gente não tá variando o i. O i começou o loop sendo igual a 1, e a condição i

Prontinho! Só dando uma revisada. Olha de novo o que acontecia com o s no for do professor:

Percebe que nosso while tá fazendo exatamente a mesma coisa? A cada loop, a gente acrescenta 1 na variável i, e depois soma esse i no s. Deu tudo certo. Mas repara, mano, que nem no código do professor e nem no nosso vai exibir nada! Não tem nenhum print() em nenhum dos códigos. Mas a ideia é essa mesmo, conseguimos imitar o for do prof com um while!

Mas antes de finalizar o exercício, queria te mostrar uma coisa.

Passo 3

Mano, exercícios de programação têm várias respostas possíveis, ok?! Olha o código que a gente escreveu até aqui:

Eu vou te mostrar que dá pra escrever de outra forma. Lembra que o loop precisa se repetir 9 vezes?! Então… De 1 até 9 são 9 vezes, mas de 0 até 8 também são! Olha:

Cara, esse código faz EXATAMENTE a mesma coisa que o anterior. No fim, o resultado dentro de s vai ser igual ao último código, e igual ao do professor também. Se você fez assim, ou de qualquer outra forma que o s termina sendo igual a 45, tá certo, jae?!

Obs: se liga que eu mudei a ordem das linhas dentro do while.

Agora sim a gente finalizou o exercício! Te espero no próximo, doido!

Resposta