Módulo 3 - Laços sob controle

Interromper o laço: quando achou, pode sair

8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026

O que você vai aprender

  • Entender o que o comando interromper (break) faz num laço.
  • Usar o break para sair assim que a busca encontra o item.
  • Perceber o ganho de esforço ao não varrer o resto à toa.
  • Reconhecer o abuso do break, que embola o fluxo do laço.

Achou? Pode parar

Imagine procurar uma pessoa numa fila para entregar uma encomenda. Você caminha do começo perguntando o nome de cada um. Na quinta pessoa, é ela. Você entrega o pacote e vai embora, certo? Ninguém continua perguntando o nome das outras cinquenta pessoas da fila só porque começou a percorrer. Essa atitude óbvia tem um comando equivalente na programação: o interromper. Quando o laço encontra o que buscava, o interromper manda parar imediatamente, sem terminar as voltas que sobraram. É a diferença entre um programa que respeita o próprio tempo e um que varre a lista inteira por teimosia.

nomes <- ["Ana", "Bruno", "Carla", "Davi"]
procurado <- "Carla"
posicao <- 0
para cada nome em nomes faça
  posicao <- posicao + 1
  se nome = procurado então
    escreva("Achei na posição ", posicao)
    interrompa
  fim
fim
// para na posição 3; Davi nem é comparado

Ao achar Carla na posição 3, o interrompa encerra o laço. Davi não chega a ser testado.

Um laço desenhado como um circuito circular com quatro voltas numeradas. Na terceira volta há uma condição achou que dispara uma seta reta saindo do círculo por uma porta lateral, direto para o bloco depois do laço. As voltas 4 em diante aparecem esmaecidas, indicando que não são executadas.
O interromper é uma porta de saída lateral do laço: ao achar, o programa sai sem completar as voltas restantes.

O ganho real de sair cedo

O ganho do interromper cresce com o tamanho dos dados. Numa lista de quatro nomes, parar na terceira volta economiza uma comparação, quase nada. Numa lista de um milhão de cadastros, achar o item na posição dez e sair economiza novecentos e noventa e nove mil novecentos e noventa comparações. Em busca real, o item procurado costuma aparecer bem antes do fim, então sair cedo faz o programa parecer instantâneo em vez de arrastado. Guarde essa ideia: ela reaparece com força no módulo de busca e no de eficiência, onde você mede exatamente quanto trabalho um algoritmo evita.

🎮 Jogo da aula

Onde o laço para?

Este laço procura o primeiro número maior que 10 e para nele. Siga volta por volta e escolha o que aparece.

numeros <- [4, 8, 15, 16, 23]
para cada n em numeros faça
  se n > 10 então
    escreva("Primeiro grande: ", n)
    interrompa
  fim
fim
escreva("Fim")

Poder com responsabilidade: sem abusar do break

O interromper é uma faca afiada, e faca afiada corta os dois lados. Um único interromper para encerrar uma busca é limpo e óbvio. Mas quando um laço tem três ou quatro pontos de saída espalhados, cada um com sua condição, fica difícil responder a pergunta mais básica: em que situações esse laço termina? O leitor precisa caçar todos os interromper para entender o fluxo. A recomendação prática é usar o interromper para o caso claro de achei, acabou, e desconfiar de laços com muitas saídas. Muitas vezes, reorganizar a condição do próprio laço, ou usar uma variável de encontrei, deixa a intenção mais legível que vários break.

Teste rápido

Um programa verifica se um CPF está numa lista de bloqueados de 50 mil itens. Por que usar interromper (break) ao encontrar melhora o programa?

Perguntas frequentes

O interromper para todos os laços de uma vez?
Não: ele para apenas o laço em que está diretamente. Se houver um laço dentro de outro, o interromper encerra só o de dentro, e o de fora continua. Isso é importante no fim deste módulo, quando os laços se aninham. Para sair de todos, usam-se outras técnicas, como uma variável de controle.
Usar break é considerado má prática?
Não em si. Um break claro para encerrar uma busca é boa prática e deixa o código eficiente. O que se evita é o abuso: muitos break com condições diferentes no mesmo laço, o que embola o fluxo. Como quase tudo em programação, a questão é usar com intenção clara, não banir.
O que acontece com o código depois do interromper, dentro do laço?
Não executa. O interromper salta direto para depois do fim do laço, então qualquer linha que viesse depois dele na mesma volta é ignorada. Por isso o interromper costuma ficar por último no bloco do SE que decide a saída, com a ação (como escrever achei) vindo antes dele.
Dá para procurar sem usar break?
Dá. Uma alternativa é usar um laço enquanto cuja condição inclua não encontrei ainda; quando encontra, a condição vira falsa e o laço termina naturalmente. Muitos consideram essa forma mais legível porque a condição de parada fica visível no topo. Break e essa técnica resolvem o mesmo problema por caminhos diferentes.
O break funciona no laço para e no enquanto?
Sim, nos dois. Em qualquer laço, o interromper encerra a repetição na hora. No para cada, ele para de percorrer a coleção; no enquanto, ele sai mesmo que a condição do topo ainda fosse verdadeira. A ideia é a mesma: uma saída de emergência do laço.
E se o item procurado não estiver na lista?
Aí o laço não encontra a condição de saída e roda até o fim naturalmente, testando todos os itens. É por isso que buscas costumam ter, depois do laço, um trecho que trata o caso não achei, geralmente checando uma variável que teria sido marcada se o item aparecesse.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.