Pular para o conteúdo

A primeira escola especializada em tecnologia do Alto Solimões, com corpo técnico formado na área.

Módulo 3: Controle de Fluxo

Loops (for, while, do-while)

Repetindo ações automaticamente

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 ;:

  1. Inicialização, let i = 1, roda uma vez no começo
  2. Condição, i <= 5, testada antes de cada volta
  3. 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

Testa o que você leu

3 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.

Pergunta 1 de 3
Quais são as três partes do `for` clássico?