Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Lógica Da Programação.

Fala galera, tudo bem?

<meta charset="UTF-8">

<script>

    function pulaLinha() {

    document.write("<br>");
    document.write("<br>");
    }

    function mostra(frase) {

    document.write(frase);
    pulaLinha();
    }

    for(var multiplicador = 1; multiplicador <= 10; multiplicador = multiplicador++) {		//tecnica de encremento, multiplicador++ é o mesmo que multiplicador = multiplicador + 1;

        mostra(7 * multiplicador);
    }

    mostra("FIM");

</script>

Fui abrir esse código no Opera e no Explorer, porém, acontece o seguinte erro (print tirado pelo opera):

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Limpei o cache, reinicie o pc, porém, não muda, o meu pc é novo, é um windows 11.

2 respostas
solução!

Oii Felipe!

Pelo que você descreveu e pelo print que compartilhou, parece que o problema está no loop infinito que está ocorrendo no seu código. A linha onde você incrementa o valor de multiplicador está incorreta. Você usou multiplicador = multiplicador++, o que não é a forma adequada de incrementar uma variável em JavaScript. O correto seria simplesmente multiplicador++ ou multiplicador += 1.

O que está acontecendo é que o operador ++ após a variável (multiplicador++) é um operador de pós-incremento, que retorna o valor da variável antes de incrementá-la. Portanto, o valor de multiplicador nunca muda e o loop nunca termina, consumindo toda a memória disponível e causando o erro de "Memória insuficiente".

Para corrigir o seu código, basta alterar a linha do loop for para:

for(var multiplicador = 1; multiplicador <= 10; multiplicador++) {
    mostra(7 * multiplicador);
}

Com essa correção, o loop for irá executar corretamente 10 vezes e depois sair, exibindo os múltiplos de 7 e a mensagem "FIM" sem causar o erro de memória.

Espero ter ajudado e bons estudos!

Pois é isso mesmo, obrigado meu mano.