Ciclo while
No for, início, condição e atualização ficam num só cabeçalho. Por vezes só conhece a regra «continua enquanto isto for verdade» — e o contador muda no meio do trabalho. while verifica primeiro uma condição, executa o corpo e verifica de novo. A mesma ideia de repetir; outra forma na página.
O que faz o while?
Enquanto a expressão entre parênteses for verdadeira, o bloco { } corre outra vez. No cabeçalho não há lugar separado para init ou atualização. Prepare variáveis antes do ciclo e altere-as no corpo até a condição ficar falsa. Então o ciclo para e segue a instrução seguinte.
while, for e do...while num relance
📊 Formas quotidianas de ciclo
| Forma | Quando encaixa | Verificação |
|---|---|---|
while |
continuar enquanto uma regra vale; atualização no corpo | antes de cada volta |
for |
já sabe início, fim e passo | antes de cada volta (cabeçalho de três partes) |
do...while |
o corpo tem de correr pelo menos uma vez | depois de cada volta |
Os while de iniciantes ainda usam muitas vezes um contador pequeno. A diferença é o sítio: escreve let i = 0 antes do ciclo e i++ (ou outra mudança) entre chavetas. Se nunca alterar o que a condição lê, o ciclo pode nunca acabar.
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
Contar com while
i começa em 0 antes do ciclo. Cada volta imprime i e soma um. Vê 0…4 — cinco voltas. O 5 não aparece porque a condição falha primeiro. Sem i++ no corpo, i ficaria 0 para sempre.
Leia uma volta com calma: condição → corpo (com a atualização) → condição outra vez. Por isso esquecer a atualização é a armadilha clássica do ciclo infinito com while.
let n = 1;
while (n <= 3) {
console.log("step " + n);
n++;
}
Começar em 1 com rótulos claros
Aqui o contador começa em 1 e a condição usa n <= 3; vê step 1, step 2, step 3. Começar em 0 ou 1 é escolha de desenho — alinhe a condição, como no for.
let total = 0;
let k = 1;
while (k <= 4) {
total = total + k;
k++;
}
console.log(total);
Acumular um total
total começa em 0. Cada volta soma o k atual e depois avança k. Depois de 1+2+3+4, total é 10. O resultado que cresce fica fora; o contador que move a condição, ao lado.
let left = 3;
while (left > 0) {
console.log("left=" + left);
left--;
}
console.log("done");
Contar para trás até parar
Nem todo o ciclo só sobe. Este imprime left=3, left=2, left=1 e depois done. Diminuir o contador também é atualização honesta — qualquer mudança que aproxime o fim serve.
let x = 0;
do {
console.log("tick " + x);
x++;
} while (x < 1);
console.log("after=" + x);
do...while executa o corpo primeiro
do...while corre o corpo uma vez e só depois verifica. Mesmo que a condição já fosse falsa para um while normal, a primeira volta acontece. Aqui vê tick 0 e depois after=1. Use quando a história for «tentar uma vez e talvez repetir».
Mostrar o resultado do while na página
Faça uma contagem curta com while, construa uma mensagem e escreva-a na página.
<!DOCTYPE html>
<html>
<head>
<title>While — page count</title>
</head>
<body>
<p id="out">…</p>
<script>
let msg = "";
let i = 1;
while (i <= 4) {
msg = msg + i + " ";
i++;
}
let box = document.getElementById("out");
box.textContent = "count=" + msg.trim();
</script>
</body>
</html>
A página mostra count=1 2 3 4. Mude o limite superior, atualize e leia a nova lista. Prefira for quando o plano de três partes é óbvio; prefira while quando a regra de paragem é uma só condição com atualização no corpo. A seguir: percorrer valores e chaves com for...of e for...in.
Experimente você
- Escreva um
whileque registe0…4comi < 5ei++no corpo. - Mude-o para registar
1…5comi <= 5. - Some
1…5emtotalcomwhilee registe o resultado. - Conte regressivamente de
5a1e depois registedone. - Escreva um
do...whileque imprima uma linha mesmo se a condição começar falsa. - Na demo HTML mude só o limite, atualize e leia
count=.
Erros comuns
- Esquecer a atualização no corpo para a condição nunca ficar falsa (ciclo infinito)
- Erro de um:
i < 5versusi <= 5quando queria a outra contagem - Escolher
do...whilequando realmente quer permitir zero voltas - Pôr a atualização no sítio errado ou mudar outra variável
- Um
whilelongo quando um cabeçalhoforclaro se leria melhor
Resumo
whilerepete um bloco enquanto a condição for verdadeira- Prepare variáveis antes; atualize-as no corpo
- Ótimo para contar, somar e contar regressivamente
do...whilecorre o corpo pelo menos uma vez e depois verifica- Prefira
forcom início/fim/passo claros;whilepara uma regra contínua - A seguir: for...of e for...in — percorrer valores e chaves
🧠 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