# 7.6 - Estruturas de repetição

## 🔁 Estruturas de Repetição em JavaScript

Aprender a **repetir ações** no código é essencial para escrever programas eficientes! Em JavaScript, usamos as **estruturas de repetição** (ou *loops*) para repetir blocos de código automaticamente, sem precisar escrever várias vezes a mesma coisa. Bora aprender? 🚀

***

### 🌀 Por que usar loops?

Imagine que você quer imprimir os números de 1 até 10. Você poderia escrever:

```js
console.log(1);
console.log(2);
console.log(3);
// ... até o 10!
```

😵 Cansativo, né? Com os **loops**, você pode fazer isso de forma simples:

```js
for (let i = 1; i <= 10; i++) {
  console.log(i);
}
```

Muito mais prático! Vamos conhecer os principais tipos de loops?

***

### 🔁 `for` — o clássico!

O `for` é um dos loops mais usados. Ele é perfeito quando você **sabe quantas vezes quer repetir** algo.

📦 Sintaxe:

```js
for (início; condição; atualização) {
  // bloco de código que será repetido
}
```

👀 Exemplo: contar de 1 a 5

```js
for (let i = 1; i <= 5; i++) {
  console.log("Número: " + i);
}
```

***

### 🔄 `while` — repita enquanto for verdade

O `while` é usado quando **não sabemos exatamente quantas vezes algo deve acontecer**, mas queremos repetir enquanto uma condição for verdadeira.

📦 Sintaxe:

```js
while (condição) {
  // bloco de código
}
```

👀 Exemplo: contar até 3

```js
let i = 1;

while (i <= 3) {
  console.log("Contando: " + i);
  i++;
}
```

⚠️ Cuidado! Se a condição nunca for falsa, o loop nunca para e o programa pode travar. Isso se chama **loop infinito**.

***

### 🔂 `do...while` — pelo menos uma vez

Esse loop garante que o código será executado **pelo menos uma vez**, mesmo que a condição seja falsa desde o começo.

📦 Sintaxe:

```js
do {
  // bloco de código
} while (condição);
```

👀 Exemplo:

```js
let senha = "123";
let tentativa;

do {
  tentativa = prompt("Digite a senha:");
} while (tentativa !== senha);

console.log("Acesso liberado!");
```

***

### 🧺 `for...of` — ideal para listas

Esse loop é usado para **percorrer arrays** (listas).

👀 Exemplo:

```js
let frutas = ["🍎", "🍌", "🍓"];

for (let fruta of frutas) {
  console.log("Fruta: " + fruta);
}
```

***

### 🗃️ `for...in` — para objetos

Use `for...in` quando quiser percorrer as **chaves (propriedades)** de um objeto.

👀 Exemplo:

```js
let pessoa = {
  nome: "Ana",
  idade: 18,
  cidade: "São Paulo"
};

for (let chave in pessoa) {
  console.log(chave + ": " + pessoa[chave]);
}
```

***

### ⚠️ Dicas importantes

✅ Use `for` quando souber quantas vezes o código precisa repetir.\
✅ Use `while` ou `do...while` quando a repetição depender de uma condição.\
✅ Use `for...of` para listas (arrays) e `for...in` para objetos.

***

### 🧠 Pratique!

> Tente criar um loop que imprima todos os números pares de 1 a 20!\
> E que tal somar todos os números de um array usando `for`?

Quanto mais você praticar, melhor vai entender. Bora codar! 💻🔥

***

### 📚 Referência

Esse conteúdo foi baseado na [documentação oficial do MDN](https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Loops_and_iteration). Sempre que quiser se aprofundar mais, consulte por lá!
