0
respostas

Não existe ingrediente repetido aqui! Minha resposta.

Para verificar se já existe um ingrediente repitido eu utilizei o for dentro do while, até aí tudo bem. Mas o que rolou é que quando eu digito um ingrediente repetido eu usava o break; o que parava o looping e esquecia de realizar até o que vinha depois dele, portanto, retirei o break, pensei ("E se eu conseguisse fazer com que o código fosse 're-lido' para eu conseguir entrar um ingrediente válido?"), então pesquisei e encontrei o continue, mas para usá-lo prefiri nomear o while para não ter dor de cabeça com outros 'while's' que possam ser criados dentro desse código. O código ficou assim:

<meta charset="UTF-8">

<h1>Receitas do Yan</h1>

<script>
    var ingredientes = [];

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

    var contador = 1;


    contagem: while(contador <= quantidade) {

        var ingrediente = prompt("Informe o ingrediente " + contador);
        var repetido = false;
        for(var posicao = 0; posicao < ingredientes.length; posicao++){

            if( ingredientes[posicao] == ingrediente) {

                repetido = true;
                console.log("Você digitou um ingrediente repetido!");
                continue contagem;
            }
        }
        if(repetido == false){
            ingredientes.push(ingrediente);
            contador++;
        }

    }

    console.log(ingredientes);
</script>

Gostaria de saber se está certo o uso do continue nessas condições.