Estruturas de Repetição: loops para automatizar tarefas
Repetir 1000 linhas de código manualmente é inviável. Com loops, você escreve uma vez e o computador executa quantas vezes for necessário.
Por que usar loops?
Imagine exibir os números de 1 a 1000 na tela. Sem loops, você precisaria de 1000 linhas de código. Com um loop for, resolve-se em 3 linhas. Loops são um dos recursos mais poderosos da programação.
Além de repetição simples, loops percorrem listas, processam arquivos, aguardam entradas do usuário e animam elementos em jogos. Dominar loops é essencial para qualquer programador.
🧮 Teste você mesmo — CalcSim
Quer mais recursos? Baixar app CalcSim IA
O laço FOR: quando você sabe quantas vezes repetir
O for é o loop mais usado quando o número de repetições é conhecido. Ele tem três partes: inicialização (define o ponto de partida), condição (o loop continua enquanto for verdadeira) e incremento (como o contador avança).
Estrutura: `for (int i = 0; i < 10; i++) { código }`. Traduzindo: comece com i = 0, repita enquanto i < 10, e a cada volta some 1 a i. Isso executa o bloco 10 vezes (i = 0, 1, 2, …, 9).
Para percorrer listas ou arrays, o for é quase sempre a escolha certa. Muitas linguagens oferecem o forEach ou for-in para percorrer cada elemento diretamente: `for (item in lista) { processar(item) }`.
- i é a variável de controle mais comum por convenção, mas pode ser qualquer nome.
- O índice começa em 0 na maioria das linguagens — o primeiro elemento de uma lista é lista[0], não lista[1].
- Você pode iterar de trás para frente: `for (int i = 10; i > 0; i--)` conta de 10 até 1.
O laço WHILE: quando a condição comanda
O while repete enquanto uma condição for verdadeira, sem contador fixo. Ideal quando você não sabe quantas repetições serão necessárias.
Exemplo: ler entradas do usuário até receber 'sair'. `while (entrada != 'sair') { entrada = lerEntrada() }`. O programa continua pedindo entrada até o usuário digitar 'sair'.
A condição é verificada ANTES de cada execução. Se já começar falsa, o bloco nunca executa. Certifique-se de que o corpo do loop modifica a condição em algum momento — caso contrário, você terá um loop infinito.
- Sempre garanta que a condição de saída será atingida.
- Loop infinito intencional: `while (true) { ... break quando necessário }` — válido, mas exige um break explícito.
- Use while para menus, validação de entrada, polling e aguardar estados externos.
O laço DO/WHILE: execute pelo menos uma vez
O do/while é como o while, mas a condição é verificada DEPOIS da execução. Isso garante que o bloco seja executado pelo menos uma vez, mesmo que a condição já seja falsa no início.
Exemplo clássico: menu de sistema. `do { exibirMenu(); opcao = lerOpcao() } while (opcao != 0)`. O menu é exibido uma vez antes da primeira verificação — o comportamento esperado para menus.
Na prática, o do/while é menos comum que o for e o while. Use-o quando a primeira execução é garantida antes da verificação, para deixar a intenção clara no código.
Break, continue e loops aninhados
O `break` interrompe o loop imediatamente, saindo dele. O `continue` pula o restante da iteração atual e vai para a próxima. Ambos tornam loops mais expressivos.
Loops aninhados (loop dentro de loop) são comuns para trabalhar com matrizes ou tabelas. O loop externo representa as linhas, o interno as colunas. Atenção: a complexidade cresce multiplicativamente — dois loops aninhados com 1000 iterações cada executam 1.000.000 de vezes.
Para melhor performance, pense se o problema pode ser resolvido sem loops aninhados. Funções de busca, ordenação e transformação de arrays embutidas nas linguagens modernas frequentemente são mais eficientes.
- break: sai do loop mais interno imediatamente.
- continue: pula para a próxima iteração do loop mais interno.
- Loop aninhado O(n²): cuidado ao usar com coleções grandes.
Perguntas frequentes
Qual a diferença entre for e while?
Use for quando sabe quantas vezes vai repetir (número fixo ou tamanho de uma lista). Use while quando a repetição depende de uma condição que pode mudar de forma imprevisível. Tecnicamente você pode converter um no outro, mas usar o certo para cada situação torna o código mais legível.
Como evitar loops infinitos?
Sempre garanta que: 1) o corpo do loop altera a variável de controle ou a condição de parada; 2) a condição de parada é atingível com os dados reais. Em while, imprima a variável de controle no início do desenvolvimento para confirmar que ela está mudando. IDEs e depuradores permitem pausar um programa travado em loop infinito.
O que é iteração?
Iteração é cada execução do corpo do loop. Se o loop roda 5 vezes, ele tem 5 iterações. A variável de controle (i, j, etc.) tem um valor diferente em cada iteração.
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