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

porque não funciona?

o contador não avança

supostamente digitei corretamente, mas ainda não funciona. qual poderia ser o problema??

<meta charset='UTF-8'>

<script>

        var lista = [];
        var igualar = parseInt(prompt("Quantos jogos você quer?"));
        var posicao = 1;

        while ( posicao <= igualar ) { 
            var adicionar = prompt("Qual jogo tu quer adicionar? " + posicao ); 
            var existe = false;

            for ( posicao = 1; posicao < lista.length; posicao++ ) {

                if ( lista[posicao] == adicionar ) {

                    existe = true;
                    break;

                }
                if ( existe == false ) {

                    lista.push(adicionar);
                    posicao++;
                }                

            }

        }

</script>
2 respostas
solução!

Oi André! Tudo certo?

Desculpe pela demora em obter retorno.

Seu programa está entrando em loop infinito porque, dentro do while, ao declarar a estrutura de repetição for, ele faz uma verificação do tamanho da lista através do length. Porém, ela está vazia. Por isso, ele nunca entra no for e não atualiza a variável posição. Tentei corrigir utilizando um if, verificando se a lista está vazia, ou seja, se seu tamanho é zero. Caso seja verdade, o jogo já é automaticamente adicionado, preenchendo a lista.

Outra coisa que modifiquei foi o for, que iniciava em antes em 1. Porém, para percorrer o vetor todo, ele precisa começar em 0. Ficou assim:

<meta charset='UTF-8'>

<script>

        var lista = [];
        var igualar = parseInt(prompt("Quantos jogos você quer?"));
        var posicao = 1;

        while ( posicao <= igualar ) { 
            var adicionar = prompt("Qual jogo tu quer adicionar? " + posicao ); 
            var existe = false;

            if(lista.length == 0){
                lista.push(adicionar);
                posicao++;
            } else {
                for ( i = 0; i < lista.length; i++ ) {
                    if ( lista[i] == adicionar ) {
                        existe = true;
                        break;
                    }
                    if ( existe == false ) {
                        lista.push(adicionar);
                        posicao++;
                    }                
                }
            }
        }
</script>

Espero ter ajudado! Abraços e bons estudos!

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

muito obrigado por responder, Yasmin. ajudou bastante no teste.