MB Academy

Estruturas de Repetição

Domine as estruturas de repetição como for, while e do-while para automatizar tarefas e percorrer dados em TypeScript.

Nas seções anteriores, aprendemos a armazenar dados com variáveis, a identificar seus tipos, e a usar condições para tomar decisões. Agora, vamos aprender como repetir blocos de código automaticamente de maneira controlada. É aqui que entram as estruturas de repetição, também chamadas de loops.

Imagine que você precise exibir a mesma mensagem várias vezes, contar de 1 até 10, somar os elementos de uma lista, ou verificar uma série de respostas de um formulário. Seria muito cansativo escrever manualmente o mesmo comando várias vezes. Com os loops, podemos automatizar repetições, economizar código e evitar erros.

O que são estruturas de repetição?

Estruturas de repetição são instruções que permitem executar um mesmo bloco de código várias vezes, de acordo com uma condição que pode ser controlada pelo programador. O loop continua enquanto a condição for verdadeira. Quando ela se torna falsa, o loop é encerrado.

Essa é uma ferramenta fundamental para resolver problemas em que precisamos:

  • Processar listas de dados
  • Executar ações em sequência
  • Repetir algo até que determinada situação seja atingida

No TypeScript, temos três principais estruturas de repetição:

  • for
  • while
  • do...while

Além delas, veremos também como usar break e continue para controlar a execução dentro dos loops, e discutiremos os riscos de loops infinitos.

Loop for

O loop for é ideal quando sabemos quantas vezes queremos que algo seja repetido. Ele possui três partes: uma inicialização (executada uma vez), uma condição (avaliada a cada repetição), e uma atualização (executada após cada repetição).

Sintaxe:

for (inicialização; condição; atualização) {
  // bloco de código a ser repetido
}

Exemplo: contar de 1 a 5.

for (let i = 1; i <= 5; i++) {
  console.log(`Contador: ${i}`);
}

Explicando o que acontece:

  1. let i = 1 → a variável de controle i começa em 1.
  2. i <= 5 → enquanto essa condição for verdadeira, o loop continua.
  3. i++ → ao final de cada repetição, i é incrementado em 1.

Assim, o código imprime:

Contador: 1
Contador: 2
Contador: 3
Contador: 4
Contador: 5

O for é muito usado para percorrer arrays, como veremos mais adiante.

Loop while

O while é usado quando não sabemos de antemão quantas vezes o código precisa ser repetido. Ele verifica a condição antes de cada execução.

Sintaxe:

while (condição) {
  // código executado enquanto a condição for verdadeira
}

Exemplo — contar até atingir um limite:

let contador = 1;

while (contador <= 3) {
  console.log(`Executando: ${contador}`);
  contador++;
}

Se esquecermos de atualizar a variável de controle (contador++), o loop nunca termina, gerando um loop infinito.

Loop do...while

Similar ao while, mas com uma diferença crucial: a condição é verificada após a primeira execução. Isso garante que o bloco de código rode pelo menos uma vez.

Sintaxe:

do {
  // bloco a ser executado
} while (condição);

Exemplo — simular uma tentativa de login:

let senhaCorreta = false;

do {
  // Simula a leitura de uma senha
  let tentativa = "1234"; // Em um caso real, viria de um prompt
  if (tentativa === "1234") {
    senhaCorreta = true;
    console.log("Acesso liberado!");
  }
} while (!senhaCorreta);

Palavras-chave de Controle: break e continue

  • break: Interrompe o loop imediatamente.
  • continue: Pula a iteração atual e vai para a próxima.
// Exemplo com break
for (let i = 1; i <= 10; i++) {
  if (i === 4) {
    break; // Para o loop quando i for 4
  }
  console.log(i); // Saída: 1, 2, 3
}

// Exemplo com continue
for (let i = 1; i <= 5; i++) {
  if (i === 3) {
    continue; // Pula a iteração quando i for 3
  }
  console.log(i); // Saída: 1, 2, 4, 5
}

Loops infinitos

Um loop infinito ocorre quando a condição nunca se torna falsa, e o código fica preso repetindo para sempre.

Exemplo perigoso:

while (true) {
  console.log("Loop eterno...");
}

Esse tipo de código trava o navegador (ou terminal) e consome recursos da máquina. Em casos controlados, loops infinitos podem ser úteis, como em servidores ou jogos, mas para iniciantes, é fundamental evitá-los.

Sempre verifique:

  • Sua condição de saída
  • Se a variável que controla o loop está sendo atualizada corretamente

Para praticar

Vamos solidificar o conhecimento sobre loops com um exercício clássico.

Cenário: Crie um script que exiba a tabuada de um número.

Requisitos:

  1. Crie uma variável numero do tipo number (por exemplo, 7).
  2. Use um loop for que vá de 1 a 10.
  3. Dentro do loop, calcule o resultado da multiplicação.
  4. Exiba o resultado no formato: "7 x 1 = 7".
Clique para ver uma possível solução
const numero = 7;

console.log(`Tabuada do ${numero}:`);

for (let i = 1; i <= 10; i++) {
  const resultado = numero * i;
  console.log(`${numero} x ${i} = ${resultado}`);
}

As estruturas de repetição ampliam significativamente o poder dos nossos programas. Agora que você domina variáveis, tipos, condições e repetições, está pronto para um novo passo: modularizar seu código com funções.