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!