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

Dúvida nesse código

Eu fiz esse código aqui. Contudo observei que ele repete todas as vezes quando coloco um ingrediente repetido. Posso estar enganado, mas é assim que ele deve funcionar mesmo? Porque ele repete? Eu entendi que ele repete porque já que você determinou uma quantidade de ingredientes, ele então vai lhe perguntar a quantidade de ingredientes exatas que você disse no inicio, e sob a condição "if" ele deveria parar o loop "for" por causa do "break" e pular para o outro "if" que está no "while", que não é o que ocorre, a sensação que eu tenho é que ele para no "if" do "for". Então para que ficasse mais coerente essa repetição, eu coloquei um "alert" informando que o ingrediente já foi colocado. Não sei se ficou claro, mais é isso. :D Espero que tenham entendido.

<meta charset="UTF-8">

<h1>Receitas do Yan</h1>

<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(var posicao = 0; posicao < ingredientes.length; posicao++){

            if(ingredientes[posicao] == ingrediente){

                alert("Você já digitou esse ingrediente. Digite outro");
                existe = true;
                break;
            } 
        }

        if (existe == false){

            ingredientes.push(ingrediente);
            contador++;
        }
    }

    console.log(ingredientes);

</script>
2 respostas
solução!

Pelos meus conhecimentos de JS e HTML, esta ocorrendo tudo certo e o fato dele repetir toda vez que voce coloca um ingrediente repetido, seria exatamente para voce poder colocar outro ingrediente. Na sua duvida do break, o codigo da BREAK no FOR LOOP mas o que acontece eh q volta pro while e ve se ja tem o mesmo tamanho ou nao. Dai ele ve que nao e se insere novamente no for loop. E caso esteja repetido (MAIS UMA VEZ) ele repete. :) espero ter ajudado

Entendi. Muitíssimo obrigado!!!