Estruturas de Repetição
Como fazer o computador repetir tarefas sem reescrever código: laços for e while, a função range() e o controle de fluxo com break e continue — tudo aplicado ao dia a dia da Pizzaria Sabores. 🍕
for — Para percorrer listas e intervalos
O for é usado para iterar sobre os elementos de uma sequência (como listas ou strings) ou para repetir um bloco de código um número determinado de vezes.
Exemplo: listando os sabores de pizza disponíveis
sabores = ["Mussarela", "Calabresa", "Pepperoni", "Quatro Queijos", "Frango com Catupiry"] print("Sabores disponíveis na Pizzaria Sabores:") for sabor in sabores: print(f"- {sabor}")
- Criamos uma
listacom os sabores de pizza. - Usamos um
forpara percorrer a lista e imprimir cada sabor, um por vez.
while — Para repetições condicionais
O while executa um bloco de código enquanto uma condição for verdadeira. É ideal quando não sabemos, de antemão, quantas vezes o laço vai repetir.
Exemplo: aceitando pedidos até o cliente digitar "sair"
sabores = ["Mussarela", "Calabresa", "Pepperoni", "Quatro Queijos", "Frango com Catupiry"] print("Faça seu pedido (digite 'sair' para encerrar):") pedido = "" while pedido.lower() != "sair": pedido = input("Escolha um sabor: ") if pedido in sabores: print(f"{pedido} adicionado ao seu pedido!") elif pedido.lower() == "sair": print("Pedido encerrado!") else: print("Esse sabor não está no cardápio. Escolha outro.")
- Criamos um loop
whileque continua rodando até o cliente digitar"sair". - Se o sabor estiver na lista, ele é adicionado ao pedido.
- Se o cliente digitar algo que não está no menu, avisamos que o sabor não está disponível.
while precisa de uma condição que, em algum momento, se torne falsa — senão o programa nunca para. Aqui, digitar "sair" é o que encerra o laço.
Usando range() para repetição controlada
O range() gera uma sequência de números e é muito útil em loops for quando queremos repetir algo uma quantidade exata de vezes. range(1, 6) gera os números de 1 a 5 (o último valor não entra).
Exemplo: preparando pizzas em um tempo determinado
print("Preparando sua pizza...") for minuto in range(1, 6): print(f"{minuto} minuto(s) se passou...") print("Sua pizza está pronta! Bom apetite!")
- O loop
forpercorre de 1 a 5 minutos. - A cada iteração, simula o tempo passando até a pizza ficar pronta.
break e continue para controle de fluxo
Podemos usar break para interromper um loop imediatamente e continue para pular uma iteração e ir direto para a próxima.
Exemplo: atendendo apenas 3 clientes na fila
clientes = ["João", "Maria", "Carlos", "Ana", "Pedro"] print("Atendendo clientes:") for i, cliente in enumerate(clientes): if i == 3: print("Capacidade máxima atingida! Não podemos atender mais clientes agora.") break print(f"Atendendo {cliente}...")
- Usamos
enumerate()para obter um índice numérico junto com cada cliente. - Quando atingimos o limite de 3 clientes atendidos, usamos
breakpara encerrar o loop.
E o continue? Pulando um item da fila
O continue não encerra o laço — ele apenas pula para a próxima iteração. No exemplo abaixo, o pedido "cancelado" é ignorado, mas o atendimento continua.
pedidos = ["Mussarela", "cancelado", "Calabresa", "cancelado", "Pepperoni"] for pedido in pedidos: if pedido == "cancelado": continue # pula este e vai para o próximo print(f"Preparando pizza de {pedido}...")
break— para tudo e sai do loop na hora.continue— pula só a iteração atual e segue para a próxima.
Conclusão 🔥
As estruturas de repetição são fundamentais para automatizar tarefas repetitivas, tornando o código mais eficiente e dinâmico. Com for e while, podemos criar loops para percorrer listas, processar pedidos e simular situações do dia a dia da Pizzaria Sabores!
for
Percorre listas, strings e intervalos — quando sabemos por onde iterar.
while
Repete enquanto uma condição for verdadeira — quando não sabemos quantas vezes.
range()
Gera sequências de números para repetições controladas dentro do for.
break · continue
Interrompem ou pulam iterações, dando controle fino sobre o fluxo do laço.
enumerate(). Depois, peça ao usuário quantas pizzas ele quer e use um for com range() para registrar cada pedido!