Page cover

7.6.2 - Estruturas de repetição

🧩 Loops dentro de Loops? Entendendo as Estruturas Aninhadas

🧩 Loops dentro de Loops? Entendendo as Estruturas Aninhadas

Sim! Você pode ter um loop dentro de outro loop — isso se chama estrutura de repetição aninhada. Mas ⚠️ atenção: apesar de parecer simples, isso pode afetar bastante o desempenho do seu código.

Vamos entender tudo isso de forma leve? 😎


🧊 O que são loops aninhados?

É quando colocamos um loop dentro de outro. É muito útil para trabalhar com listas dentro de listas (como tabelas ou matrizes).

👀 Exemplo: mostrar uma tabela de multiplicação

for (let i = 1; i <= 3; i++) {
  for (let j = 1; j <= 3; j++) {
    console.log(`${i} x ${j} = ${i * j}`);
  }
}

🧠 Dica: pense em "camadas" — o primeiro loop controla a linha, o segundo controla a coluna!


⏱️ Complexidade de Algoritmos e Loops Aninhados

Quando falamos de eficiência do código, usamos algo chamado complexidade de tempo — ou seja, quanto tempo leva para o código rodar à medida que os dados crescem.

💡 Cada loop que percorre n elementos tem complexidade O(n). Se você aninha dois loops, isso vira O(n²) — ou seja, bem mais lento com grandes volumes de dados.

📉 Exemplo simples:

Se numeros tiver 5 elementos, o total de execuções será 25 vezes. Se tiver 100 elementos? 10.000 vezes! 😵


👎 Quando os loops aninhados são problema?

  • Ao comparar muitos dados entre si (ex: verificar se há números repetidos em um array)

  • Em algoritmos de ordenação ou busca não otimizados

  • Em páginas web, pode deixar a interface lenta ou travada

⚠️ Por isso, evite usar loops aninhados quando possível — ou use com consciência!


🧠 Métodos que fazem "loop" por você

JavaScript tem alguns métodos que iteram por trás dos panos. São mais curtos, mais elegantes e geralmente mais eficientes!

🔁 forEach

🔍 filter — filtra elementos

🔄 map — transforma elementos

💯 reduce — acumula valores

Esses métodos funcionam com arrays e evitam muitos fors desnecessários!


🎒 O que são objetos e classes iteráveis?

🧺 Um iterável é algo que você pode percorrer com for...of, como:

  • arrays

  • strings

  • maps

  • sets

👨‍🏫 Você também pode criar seus próprios objetos iteráveis (nível avançado, mas poderoso!)

👀Este código define um objeto (que não é iterável por padrão) iterável.


🧠 Boas práticas com loops aninhados

✅ Só use se realmente for necessário ✅ Considere usar métodos como map, filter, find ✅ Tente dividir o problema em partes menores ✅ Dê nomes claros às variáveis internas ✅ Use comentários para explicar loops mais complexos


🧨 Desafios com loops aninhados

🧩 Desafio 1: Dado um array de arrays (matriz), imprima todos os valores

🧩 Desafio 2: Encontre todas as combinações possíveis entre dois arrays:


📌 Conclusão

Loops aninhados são poderosos 🧠, mas devem ser usados com cuidado! Aprender sobre eficiência, boas práticas, métodos nativos e iteráveis vai deixar você muito mais preparado para resolver problemas do mundo real.

🚀 Saber usar bem as estruturas de repetição te coloca em um novo nível na programação! Continue praticando, explorando e desafiando a si mesmo! 💪

Atualizado