Loops (for, while, do-while)
Por que loops?
Imagine imprimir os números de 1 a 100. Sem loops, seriam 100 linhas de console.log. Com um loop, são 3 linhas.
for --- quando sabe quantas vezes repetir
O for é como um contador automático:
for (let i: number = 1; i <= 5; i++) {
console.log(i);
}
// → 1
// → 2
// → 3
// → 4
// → 5
Três partes separadas por ;:
- Inicialização,
let i = 1, roda uma vez no começo - Condição,
i <= 5, testada antes de cada volta - Incremento,
i++, roda depois de cada volta
Somando números
let soma: number = 0;
for (let i: number = 1; i <= 100; i++) {
soma += i;
}
console.log(soma); // → 5050
Contagem regressiva
O incremento pode ser qualquer coisa:
for (let i: number = 10; i >= 0; i--) {
console.log(i);
}
console.log("Lançamento!"); // → 10, 9, 8... 0, Lançamento!
while --- quando não sabe quantas vezes
O while repete enquanto a condição for verdadeira. É como tentar abrir uma porta; você tenta até conseguir:
let tentativas: number = 0;
let acertou: boolean = false;
while (!acertou) {
tentativas++;
acertou = Math.random() > 0.8;
}
console.log(`Acertou em ${tentativas} tentativas`);
Pode ser 1 tentativa, pode ser 20. O while lida com isso.
Encontrando um divisor
function menorDivisor(n: number): number {
let divisor: number = 2;
while (n % divisor !== 0) {
divisor++;
}
return divisor;
}
console.log(menorDivisor(15)); // → 3
console.log(menorDivisor(7)); // → 7 (é primo)
do-while --- executa pelo menos uma vez
O do-while é como o while, mas executa primeiro e pergunta depois:
let número: number;
do {
número = Math.floor(Math.random() * 10);
console.log(`Gerou: ${número}`);
} while (número !== 7);
console.log("Encontrou o 7!");
A diferença: while pode nunca executar. do-while sempre roda pelo menos uma vez.
Exemplo: tabuada
const número: number = 7;
for (let i: number = 1; i <= 10; i++) {
console.log(`${número} x ${i} = ${número * i}`);
}
// → 7 x 1 = 7
// → 7 x 2 = 14
// → ...
// → 7 x 10 = 70
Exercício prático
Desafio 1: Calcule o fatorial (5! = 5 x 4 x 3 x 2 x 1 = 120):
const n: number = 5;
let fatorial: number = 1;
// Use um for multiplicando fatorial por cada número de 1 até n
Desafio 2: Conte os números pares de 1 a 50:
let contadorPares: number = 0;
// Use for + if para encontrar os pares
// Exiba cada par e, no final, o total
Referências
- Loops e iteração - MDN Web Docs - guia completo sobre for, while e do-while com exemplos
- JavaScript For Loop - W3Schools - tutorial interativo sobre loops for, while e do-while
- Estruturas de Repetição em JavaScript - Curso em Vídeo - aula completa sobre loops for, while e do-while
Testa o que você leu
3 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.