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

Meu programa não sai do INGREDIENTE 1

Quando testo e após ele perguntar a quantidade de ingredientes ele não para de perguntar o INGREDIENTE1. Estou usando o Atom como editor, será que esse é o problema?

<script>
    var ingredientes = [];

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

    var contador = 1;

    while( contador <= quantidade) {

        var ingrediente = prompt("Informe o ingrediente " + contador);
        var existe = false;
        for(posiçao = 0; posiçao < ingredientes.length; posiçao++) {
          if(ingredientes[posiçao] == ingrediente) {
            existe = true;
            break;
          }
          if(existe == false) {
            ingredientes.push(ingrediente);
            contador++;
          }
        }
    }
    console.log(ingredientes);
</script>
2 respostas
solução!

Oi Yuri,

O problema é que o bloco

if(existe == false) {
    ingredientes.push(ingrediente);
    contador++;
}

deveria estar fora do for. Você só sabe que não existe um ingrediente depois de ter olhado todos os outros, não podendo tomar essa decisão no meio do laço.

Uma dica: não use caracteres diacríticos no código fonte, isto é, acentos, cedilha, etc. Isso pode dar problema em algumas linguagens. No meu computador não funcionou com ç, mas pode ser que no seu funcione.

<meta charset="UTF-8">

<script>

    var ingredientes = [];

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

    var contador = 1;

    while( contador <= quantidade) {

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

        var existe = false;
        // faltou a tag: var - e vc usou variaveis com ç até pode se vc
        // avisasse: tag meta: <meta charset="UTF-8">
        for(var posicao = 0; posicao < ingredientes.length; posicao++) {
            if(ingredientes[posicao] == ingrediente) {
                existe = true;
                break;
            }
        }
        if(existe == false) {
            ingredientes.push(ingrediente);
            contador++;
        }
    }


    console.log(ingredientes);
// Faltou a tag para fechar    
</script>