O laço while
Às vezes você não sabe quantas voltas vai precisar: só sabe quando parar. Imagine
uma contagem regressiva antes de uma decolagem, ou ler mensagens "enquanto
houver não lidas". É pra isso que serve o while, que repete enquanto a
condição for verdadeira:
let contagem = 3;
while (contagem > 0) {
console.log("Faltam:", contagem);
contagem--;
}
console.log("Decolagem! 🚀");
⚠️ Cilada clássica: o laço infinito. Acontece com todo mundo: você esquece o
contagem--, a condição nunca chega afalsee o programa fica rodando para sempre e trava. Toda vez que escrever umwhile, pergunte-se: "qual linha faz isto terminar algum dia?".
O laço do...while
É como o while, mas verifica a condição no final. Isso garante que o
corpo seja executado ao menos uma vez, mesmo que a condição seja falsa desde o
início:
let n = 10;
do {
console.log("Isto executa uma vez mesmo que n já seja grande");
n++;
} while (n < 5);
for ou while?
for: número de repetições conhecido (percorrer de 1 a 100).while: repetir até que algo aconteça (ler dados até que acabem).do...while: igual aowhile, mas você precisa executar o corpo ao menos uma vez (mostrar um menu e pedi-lo de novo).
Exemplos
Contagem regressiva com while
let contagem = 3;
while (contagem > 0) {
console.log(contagem);
contagem--;
}
console.log("Pronto!");
do...while executa ao menos uma vez
let tentativas = 0;
do {
console.log("Tentativa", tentativas);
tentativas++;
} while (tentativas < 3);