O laço while
é uma ferramenta poderosa em Python para controlar o fluxo de seus programas. Ao contrário dos laços for
, que iteram sobre uma sequência definida, os laços while
continuam a execução enquanto uma condição especificada permanecer verdadeira. Isso os torna particularmente úteis quando o número de iterações é desconhecido previamente.
Sumário
- Estrutura Básica do Laço While
- Controlando a Execução do Laço:
break
econtinue
- A Construção
while-else
- Exemplos Práticos
- Evitar Laços Infinitos
Estrutura Básica do Laço While
A sintaxe fundamental de um laço while
é simples:
while condição:
# Código a ser executado repetidamente
# ...
A condição
é avaliada antes de cada iteração. Se ela avaliar para True
, o bloco de código indentado é executado. Se ela avaliar para False
, o laço termina e o programa continua com as instruções após o laço.
Controlando a Execução do Laço: break
e continue
As instruções break
e continue
oferecem controle preciso sobre o comportamento do laço:
break
: Sai imediatamente do laço, independentemente da condição.continue
: Pula o restante da iteração atual e prossegue para a próxima iteração.
count = 0
while count < 5:
count += 1
if count == 3:
continue # Pula a impressão de 3
print(count)
while count < 10:
count += 1
if count == 7:
break # Sai do laço quando count é 7
print(count)
A Construção while-else
O laço while
do Python suporta unicamente um bloco else
opcional. Este bloco else
é executado apenas se o laço completar *naturalmente* — ou seja, quando a condição do laço se tornar False
. Crucialmente, o bloco else
não é executado se o laço for terminado usando uma instrução break
. Isso fornece uma maneira limpa de lidar com situações em que você precisa executar uma ação apenas quando o laço termina sem interrupção.
count = 0
while count < 5:
print(count)
count += 1
else:
print("Laço completado normalmente!")
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print("Laço NÃO completado normalmente!") # Isso não será impresso
Exemplos Práticos
Aqui estão alguns exemplos demonstrando usos práticos de laços while
:
Exemplo 1: Validação de Entrada do Usuário
while True:
try:
idade = int(input("Digite sua idade: "))
if idade >= 0:
break # Sai do laço se idade válida for inserida
else:
print("Idade não pode ser negativa.")
except ValueError:
print("Entrada inválida. Digite um número.")
print(f"Sua idade é: {idade}")
Exemplo 2: Simulando uma contagem regressiva
import time
contagem = 10
while contagem > 0:
print(contagem)
time.sleep(1) # Pausa por 1 segundo
contagem -= 1
print("Foguete!")
Evitar Laços Infinitos
Uma armadilha comum com laços while
é criar um laço infinito — um laço que nunca termina. Isso tipicamente acontece quando a condição do laço nunca se torna False
. Sempre certifique-se de que sua condição de laço eventualmente avaliará para False
. Examine cuidadosamente a lógica de seu laço e certifique-se de que as variáveis que afetam a condição são atualizadas apropriadamente dentro do corpo do laço.