Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

For

Código inicial

    for(var contador = 1; contador <=10; contador= contador+1){
        mostra("contador atual " + contador);
    }

quando eu substituo o contador +1 por contador++, meu chrome entra em loop infinito e trava (só consigo sair finalizando o chrome no painel de controle), não consigo entender por qual motivo.

for(var contador = 1; contador <=10; contador= contador++){ mostra("contador atual " + contador); }insira seu código aquisó com essa alteração já acontece esse erro e não entendo o motivo.

1 resposta
solução

Quando você faz o incremento usando contador++ o valor que é retornado inicialmente é o valor sem o incremento.

Execute, por exemplo, o seguinte código no console do seu navegador:

var incremento = 0;
incremento++;

E você irá ter o retorno 0. Mas ao inspecionar novamente a variável incremento após a operação você verá que seu valor será 1.

No seu for você está fazendo:

contador = contador++

Dessa forma o valor atribuído para o contador é sempre seu valor atual e não o seu valor incrementado.

Assim o contador fica sempre como valor 1 criando um loop infinito.

O que você pode fazer é:

for(var contador = 1; contador <=10; contador++){ mostra("contador atual " + contador); }

Dessa forma o contador irá incrementar o valor corretamente.