Aula 7: Laço de Repetição `while`

Automatizando tarefas repetitivas.

O Que Você Vai Aprender

Nesta aula de 2 horas, você aprenderá a fazer seu programa repetir tarefas, um conceito fundamental em programação conhecido como "loop". Focaremos no laço `while`, entendendo sua sintaxe, como controlá-lo com `break` e `continue`, e como evitar os temidos loops infinitos.

🔁 Conceito de Repetição (Loop)

Compreender por que e como os programas precisam repetir ações para otimizar tarefas.

♾️ Laço `while`

Aprender a sintaxe e o funcionamento do laço `while`, que executa código enquanto uma condição for verdadeira.

🚫 Evitar Loops Infinitos

Identificar e aprender estratégias para prevenir que seu programa fique preso em um loop sem fim.

🛑 Controle de Fluxo (`break`, `continue`)

Usar as instruções `break` e `continue` para ter um controle mais preciso sobre o comportamento dos laços.

Introdução aos Laços de Repetição

Imagine ter que escrever `print("Olá!")` cem vezes. Chato, não é? Os laços de repetição (ou loops) resolvem esse problema! Eles permitem que você execute o mesmo bloco de código várias vezes, de forma automática, economizando tempo e linhas de código.

Por que usar laços? Para executar o mesmo bloco de código várias vezes sem precisar reescrevê-lo. Isso é essencial para tarefas repetitivas, como processar listas de itens, simular contagens ou criar jogos.

O Laço `while`: Repetindo Enquanto Verdadeiro

O laço `while` é um dos tipos mais comuns de loop. Ele executa um bloco de código enquanto uma condição for verdadeira. Assim que a condição se torna falsa, o laço para de executar e o programa continua seu fluxo normal.

Sintaxe

while condicao:
    # código a ser executado enquanto a condição for True

A condição é verificada a cada nova iteração do laço.

Exemplo: Contagem Regressiva

contador = 5
while contador > 0:
    print(contador)
    contador = contador - 1 # ou contador -= 1
print("Fim!")

Simulador de Contagem Regressiva com `while`

Digite um número e veja a contagem regressiva no console.

Loops Infinitos: O Perigo

Um loop infinito ocorre quando a condição do `while` nunca se torna `False`. Isso faz com que o programa execute o mesmo bloco de código para sempre, travando ou consumindo todos os recursos. É um erro comum para iniciantes!

⚠️ Como Evitar Loops Infinitos:

Sempre garanta que, dentro do laço, haja uma instrução que altere a variável ou condição que controla o `while`, fazendo com que, em algum momento, ela se torne `False`.

# Exemplo de loop infinito:
# contador = 1
# while contador > 0:
#     print("Looping...") 
# (contador nunca muda, então sempre será > 0)

Instrução `break`: Parada Brusca

A instrução `break` é usada para interromper um laço imediatamente, mesmo que a condição do `while` (ou `for`) ainda seja verdadeira. O controle do programa salta para a primeira linha após o laço. É muito útil quando uma condição específica deve terminar o loop.

Exemplo: Parar ao Digitar 'sair'

while True: # loop intencionalmente infinito
    palavra = input("Digite 'sair' para terminar: ")
    if palavra == 'sair':
        break # Quebra o laço
print("Você saiu do laço.")

Simulador `break`: Adivinhe a Palavra

Digite uma palavra. Digite 'sair' para parar o loop.

Instrução `continue`: Pulando para a Próxima

A instrução `continue` faz com que o programa pule o restante do código na iteração atual do laço e avance para a próxima iteração. A condição do laço é verificada novamente. É útil para ignorar certas condições dentro do loop sem terminá-lo completamente.

Exemplo: Imprimir Apenas Números Ímpares

numero = 0
while numero < 10:
    numero += 1
    if numero % 2 == 0:
        continue # Pula para a próxima iteração se o número for par
    print(numero)

Simulador `continue`: Ignorando Pares

Veja o loop imprimir números de 1 a 10, mas pulando os números pares usando `continue`.

Desafios para Continuar

É hora de colocar seus conhecimentos sobre laços em prática! Resolva estes problemas no seu próprio ambiente de desenvolvimento Python. Eles o ajudarão a dominar a repetição e o controle de fluxo.

  • Jogo de Adivinhação de Número Secreto

    Crie um programa que:

    • Define um número secreto (ex: `secreto = 42`).
    • Pede ao usuário para adivinhar o número.
    • Continua pedindo palpites até o usuário acertar.
    • Após o acerto, imprime uma mensagem de parabéns.

  • Somador de Números

    Crie um programa que:

    • Inicializa uma variável `soma` com 0.
    • Pede repetidamente ao usuário para digitar um número.
    • Adiciona o número digitado à `soma`.
    • Para de pedir números quando o usuário digitar `0`.
    • Ao final, mostra o valor total da `soma`.