Lógica de ProgramaçãoMédio· 10 min de leitura

Estruturas de Repetição

Laços de repetição permitem executar blocos de código várias vezes sem duplicar instruções. Conheça for, while, do-while e as boas práticas para evitar erros.

RF

Renato Freitas

Atualizado em 5 de maio de 2026

Por que laços de repetição existem

Imagine que você precise exibir 'Bom dia!' 100 vezes. Sem laços, você escreveria a mesma instrução 100 vezes — tedioso, propenso a erros e impossível de manter. Com um laço, você escreve a instrução uma vez e diz ao computador quantas vezes repeti-la.

Laços são a principal ferramenta para processar coleções de dados: somar todos os valores de uma lista, encontrar o maior número em um conjunto, verificar se um elemento existe em um vetor. Sem laços, você só poderia processar um número fixo e conhecido de elementos.

A ideia central é simples: enquanto uma condição for verdadeira, execute este bloco de instruções. Quando a condição se tornar falsa, pare. O desafio está em garantir que a condição eventualmente se torne falsa — caso contrário, o programa trava em um loop infinito.

🧮 Teste você mesmo — CalcSim

Quer mais recursos? Baixar app CalcSim IA

O laço for: quando você sabe o número de repetições

O laço 'for' é ideal quando você sabe de antemão quantas vezes o bloco deve executar. Sua estrutura tem três partes: inicialização (cria e define o contador), condição (enquanto for verdadeira, continua) e incremento (atualiza o contador a cada ciclo).

Pseudocódigo: PARA i DE 1 ATÉ 10 FAÇA (exibir i). Isso exibe os números de 1 a 10. O contador 'i' começa em 1, o bloco executa, i incrementa para 2, o bloco executa novamente, e assim por diante até i chegar a 11, quando a condição 'i <= 10' se torna falsa e o laço para.

Um uso muito comum é percorrer uma lista pelo índice: PARA i DE 0 ATÉ tamanho_da_lista - 1 FAÇA (processar lista[i]). Note que listas geralmente começam no índice 0, então o último índice é 'tamanho - 1'.

O laço while: quando a condição é dinâmica

O laço 'while' é usado quando você não sabe de antemão quantas iterações serão necessárias — a repetição continua enquanto uma condição for verdadeira. Exemplo: ler entradas do usuário até que ele digite 'sair'.

Pseudocódigo: ENQUANTO (entrada != 'sair') FAÇA (processar entrada; ler nova entrada). A condição é verificada antes de cada execução do bloco. Se a condição já for falsa na primeira verificação, o bloco nunca executa.

O while é natural para situações como: aguardar uma conexão de rede, processar um arquivo linha por linha até o fim, ou repetir uma tentativa até que ela seja bem-sucedida.

Do-while, loops infinitos, break e continue

O 'do-while' garante que o bloco execute pelo menos uma vez, pois a condição é verificada após a primeira execução. É útil para validação de entrada: execute o pedido, depois verifique se a resposta é válida.

Um loop infinito ocorre quando a condição nunca se torna falsa: ENQUANTO (verdadeiro) FAÇA (...) sem uma saída explícita. Isso trava o programa. Para evitar, certifique-se sempre de que alguma instrução dentro do laço modifica as variáveis da condição de parada.

O 'break' força a saída imediata do laço, independentemente da condição. O 'continue' pula para a próxima iteração sem executar o restante do bloco atual. Ambos devem ser usados com moderação — o uso excessivo torna a lógica difícil de seguir.

  • for: número de repetições conhecido antecipadamente
  • while: condição verificada antes de cada iteração
  • do-while: garante pelo menos uma execução
  • break: sai imediatamente do laço
  • continue: pula para a próxima iteração

Exemplos práticos

Soma de uma série: soma = 0; PARA i DE 1 ATÉ 100 FAÇA soma = soma + i. Resultado: 5050. Este é um dos algoritmos mais clássicos para introduzir laços.

Busca em uma lista: PARA i DE 0 ATÉ tamanho - 1 FAÇA SE (lista[i] == valor_buscado) ENTÃO exibir 'Encontrado na posição i' E QUEBRAR. O 'break' evita continuar a busca após encontrar o elemento.

Contagem de números pares: contador = 0; PARA i DE 1 ATÉ 1000 FAÇA SE (i MOD 2 == 0) ENTÃO contador = contador + 1. O operador MOD retorna o resto da divisão — se o resto por 2 é zero, o número é par.

Perguntas frequentes

Quando devo usar for versus while?

Use for quando o número de iterações é conhecido ou pode ser calculado antes do laço (percorrer uma lista, contar até N). Use while quando a condição de parada depende de algo que muda durante a execução (entrada do usuário, dado de rede, resultado de cálculo).

O que é um laço aninhado e qual o custo de desempenho?

Um laço dentro de outro laço. Para cada iteração do laço externo, o laço interno completa todas as suas iterações. Se o externo tem N iterações e o interno tem M, o total é N×M execuções. Laços aninhados têm custo quadrático e devem ser evitados em grandes conjuntos de dados.

Como depurar um loop que parece não terminar?

Adicione uma instrução para exibir o valor da variável de controle a cada iteração. Verifique se a condição de parada está correta (operador errado, variável errada), se o incremento realmente acontece, e se alguma instrução está acidentalmente resetando o contador.

O que são iteradores e para que servem?

Iteradores são objetos que abstraem a lógica de percorrer uma coleção. Em vez de gerenciar índices manualmente, você usa 'para cada elemento em coleção faça'. São mais seguros (sem risco de índice fora do limite) e mais legíveis que laços com contadores explícitos.

Este artigo foi útil para você?

Avalie com estrelas para nos ajudar a melhorar o conteúdo.

Faça login para avaliar este artigo.

Ainda tem dúvida?

O Professor IA explica passo a passo

Faça uma pergunta em linguagem natural e receba uma explicação personalizada sobre Lógica de Programação — ou qualquer outro tópico.

Prefere resolver pelo celular?

Baixar o app grátis →

Continue aprendendo