Pular para o conteúdo principal

Aula 07: Estruturas de Repetição (FOR e WHILE)

Objetivos de Aprendizagem

Ao final desta aula, você deve ser capaz de:

  1. Usar o laço for para iterar sobre sequências.
  2. Usar range() para gerar sequências numéricas.
  3. Usar o laço while para repetir enquanto uma condição for verdadeira.
  4. Controlar laços com break e continue.
  5. Escolher entre for e while de acordo com o problema.

Conteúdo

1) Laço for

O laço for percorre cada elemento de uma sequência (lista, string, etc.).

frutas = ["maçã", "banana", "laranja"]
for fruta in frutas:
print(fruta)

Saída esperada:

maçã
banana
laranja

2) Função range()

range() gera uma sequência de inteiros, muito usada com for.

# range(fim): de 0 até fim-1
for i in range(5):
print(i) # 0, 1, 2, 3, 4

# range(inicio, fim): de inicio até fim-1
for i in range(2, 6):
print(i) # 2, 3, 4, 5

# range(inicio, fim, passo)
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8

Exemplo: tabuada

def tabuada(numero):
for i in range(1, 11):
print(f"{numero} x {i} = {numero * i}")

tabuada(7)

3) Laço while

O laço while repete enquanto uma condição for True.

contador = 0
while contador < 5:
print(f"Contagem: {contador}")
contador += 1

Atenção: sempre garanta que a condição vai se tornar False em algum momento, caso contrário o programa entra em loop infinito.

Exemplo: adivinha o número

import random

numero_secreto = random.randint(1, 10)
tentativa = 0

while tentativa != numero_secreto:
tentativa = int(input("Adivinhe (1-10): "))
if tentativa < numero_secreto:
print("Muito baixo!")
elif tentativa > numero_secreto:
print("Muito alto!")

print("Acertou!")

4) break — interromper o laço

break encerra o laço imediatamente, independente da condição.

for numero in range(1, 11):
if numero == 5:
break
print(numero)
# Imprime: 1, 2, 3, 4

Uso típico: busca em sequência

nomes = ["Alice", "Bob", "Carol", "Diana"]
busca = "Carol"

for nome in nomes:
if nome == busca:
print(f"Encontrado: {nome}")
break

5) continue — pular para a próxima iteração

continue pula o restante do corpo do laço e vai para a próxima iteração.

for numero in range(1, 11):
if numero % 2 == 0:
continue
print(numero)
# Imprime apenas os ímpares: 1, 3, 5, 7, 9

6) Quando usar for ou while?

SituaçãoRecomendação
Iterar sobre uma coleção de elementosfor
Repetir um número fixo de vezesfor com range()
Repetir enquanto uma condição não for atingidawhile
Número de repetições desconhecido antecipadamentewhile

7) Exemplos contextualizados

Exemplo A: soma de uma lista de notas

notas = [7.5, 8.0, 6.5, 9.0, 5.5]
soma = 0

for nota in notas:
soma += nota

media = soma / len(notas)
print(f"Média da turma: {media:.2f}")

Saída esperada: Média da turma: 7.30

Exemplo B: validação de entrada com while

idade = -1
while idade < 0 or idade > 120:
idade = int(input("Digite sua idade: "))

print(f"Idade válida: {idade}")

Exercícios (checkpoints)

  1. Use for e range() para imprimir os números de 1 a 10.
    • Critério de verificação: todos os números de 1 a 10 devem aparecer, um por linha.
  2. Escreva um programa que soma os números de 1 a 100 usando for.
    • Critério de verificação: o resultado deve ser 5050.
  3. Use while para pedir ao usuário um número positivo, repetindo enquanto ele digitar um negativo.
    • Critério de verificação: o laço só deve encerrar quando o usuário digitar um valor >= 0.
  4. Percorra uma lista de palavras e imprima apenas as que têm mais de 4 letras usando continue.
    • Critério de verificação: palavras com 4 letras ou menos não devem aparecer.
  5. Use for com break para encontrar o primeiro número divisível por 7 no intervalo de 1 a 50.
    • Critério de verificação: o resultado deve ser 7.
  6. Crie uma função contar_pares(lista) que retorna a quantidade de números pares na lista usando for.
    • Critério de verificação: para [1, 2, 3, 4, 5, 6], o resultado deve ser 3.

Referências

Principais

Aprofundamento