break e continue
Um loop pode completar cada volta até o fim — até você direcioná-lo. Às vezes já tem a resposta e quer parar. Às vezes um item não serve e você quer pulá-lo, depois seguir. break sai do loop na hora. continue vai para a próxima volta. Mesma família de loops; duas palavras pequenas mudam a rota.
O que break faz?
break termina o loop mais próximo agora. Voltas posteriores não rodam. O que vem depois do loop no script ainda roda. Pense: «Terminei — saia.» Comum ao buscar a primeira correspondência sem varrer o resto.
break versus continue
📊 Dirigir o loop no meio do caminho
| Palavra | Efeito | Encaixe do dia a dia |
|---|---|---|
break |
sair do loop agora | achou a primeira correspondência; não espere mais |
continue |
pular o resto desta volta, começar a próxima | ignorar um item ruim; continuar a varredura |
| nenhuma | cada volta executa o corpo inteiro | todo item precisa do mesmo tratamento |
| depois do loop | o código abaixo do loop ainda roda | break só sai do loop, não do script inteiro |
Escolha break quando voltas posteriores não servem. Escolha continue quando uma volta deve ficar quieta mas o passeio continua. Não troque — o bug parece «quase certo» e é difícil de ver.
const nums = [2, 4, 7, 8];
let found = null;
for (let i = 0; i < nums.length; i++) {
if (nums[i] === 7) {
found = nums[i];
break;
}
}
console.log(found);
Pare quando achar a correspondência
O loop olha 2, depois 4, depois 7. Em 7 guarda o valor e faz break. 8 não roda. found é 7. Sem break, o loop seguiria depois de saber a resposta.
for (let i = 1; i <= 5; i++) {
if (i % 2 === 0) {
continue;
}
console.log(i);
}
Pule uma volta e continue
Quando i é par, continue salta para o próximo i. A linha console.log fica de fora nessas voltas. Você vê 1, 3, 5. O loop não parou — só passou pelos pares.
let n = 1;
while (n < 20) {
if (n === 5) {
break;
}
console.log(n);
n = n + 1;
}
Sair cedo de um while
while seguiria enquanto n < 20. Em n === 5, break sai. Impresso: 1–4. Combina com «siga até uma regra de parada, depois saia» sem completar todas as voltas possíveis.
const colors = ["red", "skip", "blue"];
for (const c of colors) {
if (c === "skip") {
continue;
}
console.log(c);
}
Pular valores em for...of
for...of ainda percorre valores. continue ignora "skip" e registra red, depois blue. A ideia de direção vale em for, while e for...of — só o loop mais próximo.
const parts = ["A", "x", "B", "x", "C"];
let msg = "";
for (const p of parts) {
if (p === "x") {
continue;
}
msg = msg + p;
}
console.log(msg);
Filtrar enquanto junta
Cada "x" é pulado; as letras se juntam. Resultado: ABC. Mesmo hábito de juntar das lições de loop — continue é o portão de filtro no passeio.
Mostrar break e continue na página
Percorra uma lista curta, pule um rótulo com continue, pare cedo com break após um marcador, escreva o resultado na página.
<!DOCTYPE html>
<html>
<head>
<title>break / continue — page</title>
</head>
<body>
<p id="out">…</p>
<script>
const items = ["a", "skip", "b", "stop", "c"];
let line = "";
for (const item of items) {
if (item === "skip") {
continue;
}
if (item === "stop") {
break;
}
line = line + item + " ";
}
let box = document.getElementById("out");
box.textContent = "kept=" + line.trim();
</script>
</body>
</html>
A página mostra kept=a b. "skip" foi ignorado; "stop" fechou o loop antes de "c". Mude o array, atualize e leia a nova linha. A próxima lição começa funções — blocos reutilizáveis que você chama pelo nome.
Experimente você mesmo
- Num
forsobre[3, 9, 1], façabreakquando o valor for9e guarde. - Registre só ímpares de
1a6comcontinuenos pares. - Num
while, pare combreakquando o contador chegar a3. - Com
for...ofem["ok", "no", "ok"], passe"no"comcontinue. - Junte
["1", "-", "2"]em12pulando"-". - Na demo HTML mude só o array, atualize e leia
kept=.
Erros comuns
- Achar que
continuesai do loop inteiro (isso ébreak) - Colocar mais trabalho depois de
breakna mesma volta — nunca roda - Num
while, usarcontinuesem atualizar o contador antes — risco de loop infinito - Usar
breakquando só queria pular um item - Esperar que
breaksaia do script inteiro — só do loop mais próximo
Resumo
break— sair do loop agora; voltas posteriores não rodamcontinue— pular o resto desta volta; começar a próxima- Funciona em
for,whileefor...of - Busca costuma usar
break; filtro costuma usarcontinue - Código após o loop ainda roda depois de
break - Seguinte: funções — nomeie um bloco de trabalho e chame-o
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo