Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Pré incremento???

const notas = [10, 8.5, 5, 6.5, 8, 7.5];


for (let indice = 0; indice < notas.length; indice++) {
    console.log(indice, notas[indice]);
}

por que quando eu inverto o "indice++" para "++indice" ele continua executando do numero 0 pro 5, sendo que se foi pré-incrementado ele não deveria começar pelo 1?

1 resposta
solução!

Olá Jhonatan, tudo bem com você?

No loop for, quando você usa indice++, isso é um pós-incremento, o que significa que o valor de indice é utilizado no loop antes de ser incrementado. Ou seja, na primeira iteração do loop, indice é 0, e só depois de executar o código dentro das chaves {} é que indice é incrementado para 1.

Quando você muda para ++indice, isso é um pré-incremento, que incrementa indice antes de usar seu valor na iteração atual do loop. No entanto, é importante notar que essa mudança não afeta a primeira execução do loop, porque o incremento ou o teste da condição (neste caso indice < notas.length) ocorre após a execução do bloco de código dentro do loop.

Portanto, mesmo mudando para ++indice, o loop ainda começa com indice igual a 0, porque o incremento só acontece no final da primeira passagem pelo loop, antes da segunda iteração, por comportamento padrão do tipo de estrutura for. Assim, na prática, dentro do bloco do loop, o comportamento de indice++ e ++indice será o mesmo na primeira iteração. Ou seja, isso ocorre porque a expressão de iteração do for (no terceiro argumento) só é avaliada após a execução do bloco de código do loop.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software