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

Não consigo identificar o erro em meu código.

Olá, pessoal.

Tudo bem?

Estou tentando finalizar o exercício dos ingredientes repetidos, mas não consigo identificar qual o problema no meu código e também não quero olhar a resolução alheia antes de pelo menos compreender de que forma eu posso evitar o que tem acontecido.

Basicamente o erro que venho enfrentando é que a contagem dos meus ingredientes nunca passa de 1, portanto o meu código trava em um looping infinito em que adicionar um ingrediente ou clicar em cancelar não fazem nenhuma diferença.

O código está da seguinte forma:

<meta charset="UTF-8">

<h1>Receitas do Yan</h1>

<script>
    var ingredientes = [];

    var quantidade = parseInt(prompt("Quantos ingredientes você vai adicionar?"));

    var contador = 1;

    var repetido = false;

    while( contador <= quantidade) {

        var ingrediente = prompt("Informe o ingrediente " + contador);

        for(var posicao = 0; posicao < ingredientes.length; posicao++){
            if(ingredientes[posicao] == ingrediente){
                repetido = true;
                break;
            }
            if(repetido == false){
                ingredientes.push(ingrediente);
                contador++
            }
        }
    }

    console.log(ingredientes);
</script>

Obrigado desde já pela ajuda!

2 respostas

Fiz uma alteração no meu código e consegui um resultado diferente, porém um novo problema apareceu:

Retirei o if(repetido == false){ ingredientes.push(ingrediente); contador++ De dentro do meu for e consegui fazer com que o contador de ingredientes saísse de 1. Porém, agora quando adiciono um ingrediente repetido entro em outro looping eterno. kkkkk

solução!

Consegui resolver. Eu declarei a variável repetido = false dentro do meu while e o problema foi solucionado.