Programação · Ensino fundamental · aula 4 de 5 · ~2 min de leitura
Laços de repetição
Como mandar o computador repetir uma tarefa sem reescrever o código.
Esta aula ainda aguarda revisão da comunidade. Achou um erro? Sugira uma correção.
Computadores são ótimos em repetir tarefas sem cansar e sem errar. Os laços (em inglês, loops) dizem ao programa para executar um bloco várias vezes.
Enquanto: while
O while repete o bloco enquanto a condição for verdadeira.
contador = 1
while contador <= 5:
print(contador)
contador = contador + 1
Esse programa mostra os números de 1 a 5. Acompanhe:
contadorcomeça valendo 1.- A condição
contador <= 5é verdadeira, então o bloco roda: mostra 1 e o contador passa a valer 2. - O programa volta e testa a condição de novo.
- Quando o contador chega a 6, a condição fica falsa e o laço termina.
Cuidado com o laço infinito
Se você esquecer a linha contador = contador + 1, o contador vale 1 para sempre, a condição nunca fica falsa e o programa nunca para. Isso se chama laço infinito.
Sempre que escrever um while, pergunte: o que, dentro do bloco, vai fazer a condição ficar falsa em algum momento?
Para cada: for
Quando você sabe quantas vezes quer repetir, o for é mais simples:
for numero in range(1, 6):
print(numero)
range(1, 6) gera os números de 1 a 5. O primeiro valor entra, o último não: a contagem para antes do 6. Com um só valor, range(3) começa do zero e gera 0, 1 e 2.
A cada volta, a variável numero recebe o próximo valor da sequência.
Um exemplo útil: somar de 1 a 100
soma = 0
for numero in range(1, 101):
soma = soma + numero
print(soma) # mostra 5050
A variável soma começa em zero e vai acumulando os valores a cada volta. Esse padrão, chamado de acumulador, aparece em quase todo programa.
Qual usar
- Use
forquando souber quantas repetições serão, ou quando for percorrer uma sequência. - Use
whilequando a repetição depender de algo que acontece durante o programa, como "repita até a pessoa digitar a senha certa".
Pratique
Escreva um laço que mostre a tabuada do 7, de 7 × 1 até 7 × 10. Dica: dentro do laço, multiplique 7 pela variável que conta as voltas.
Teste o que você aprendeu
1. Quais números o comando for i in range(3) percorre?
2. O que causa um laço infinito?
3. Quando o while é mais indicado que o for?
Fontes desta aula
- André Forbellone e Henri Eberspächer. Lógica de programação: a construção de algoritmos e estruturas de dados (2005).
- Python Software Foundation. O tutorial de Python.