O poder de repetir sem cansar: for
Imprimir dez linhas parecidas copiando e colando dez vezes o mesmo comando funciona, mas é um desperdício. Um computador não cansa de repetir, e existe uma estrutura própria para isso: o laço.
Estudar esta lição interativa →Imagine que você precisa dobrar 20 peças de roupa. Copiar e colar a instrução "dobre uma peça" vinte vezes funciona, tecnicamente, mas é um desperdício gigante de esforço, e vira um problema sério se o número mudar para 200. O que você realmente quer dizer é algo como "repita esta ação um certo número de vezes". É exatamente esse padrão de pensamento que um laço (em inglês, loop) resolve: uma única instrução que o computador repete sozinho, sem cansar, sem errar a contagem.
for (let i = 1; i <= 5; i++) {
console.log("Dobrando a peça de roupa " + i + " de 5");
}Rode e conte quantas linhas o console mostrou.
Esse tipo de laço se chama for, e ele tem três partes, separadas por ponto e vírgula, dentro dos parênteses. A primeira, let i = 1, cria uma variável de controle começando em 1. A segunda, i <= 5, é a condição de continuar: enquanto ela for verdadeira, o laço continua rodando. A terceira, i++, é o que muda a cada volta: aqui, soma 1 a i depois de cada repetição. O bloco entre chaves roda uma vez para cada valor de i, de 1 até 5.
Pense num for como alguém marcando cada peça de roupa dobrada com um risquinho num papel, até chegar no número combinado: "risquei 1? Continue. Risquei 2? Continue. (...) Risquei 5? Pare." A variável i é exatamente esse contador; a condição é o "até quando continuar"; e o incremento é o "risquinho a mais" a cada volta.
A letra i (de "index", índice, em inglês) é usada por convenção em quase todo laço do mundo, mas você poderia chamá-la de contador ou qualquer outro nome. O motivo de i ser tão comum é só tradição: qualquer programador reconhece na hora que é uma variável de controle de laço, o que ajuda a ler o código de outras pessoas.
Se você quer repetir 5 vezes e escreve i < 5 começando em i = 0, o laço roda 5 vezes de fato (0, 1, 2, 3, 4), mas se você também começar em i = 1 com a mesma condição i < 5, o laço roda só 4 vezes (1, 2, 3, 4), um a menos do esperado. Esse deslize, chamado de erro de um a mais ou a menos (em inglês, off-by-one), é tão comum que tem nome próprio. Sempre que o número de repetições sair errado por exatamente 1, a primeira coisa a checar é onde o laço começa e onde ele para.
for (let i = 0; i < 5; i++) {
console.log(i);
}Ajuste o início e a condição do for.