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

Como adicionar um "if" para entrada vazia ?

Boa tarde!

Consegui implementar o "if" para uma entrada repetida. Quero checar se ela também não é vazia, porque uma entrada vazia fica como se tivesse menos um ingrediente na lista.

segue o código

<meta charset="UTF-8">

<h1>Receitas do Yan</h1>

<script>

    function pulaLinha() {

        document.write("<br>");
    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    var ingredientes = [];

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

    mostra("Quantidade de ingredientes " + quantidade);

    var contador = 1;

    while( contador <= quantidade) {
        var achou = false;
        var vazio = "";
        var ingrediente = prompt("Informe o ingrediente " + contador);

            // checagem para ingrediente repetido
            for(var posicao = 0; posicao < ingredientes.length; posicao++) {
                if(ingredientes[posicao] == ingrediente) {
                    alert("Ingrediente repetido ");
                    achou = true;
                    break;
                }
                //checagem para entrada vazia
                if(ingredientes[posicao] === vazio) {
                    alert("você precisa fornecer um ingrediente ");
                    achou = true;
                    break;
                }
            }


            // adiciona o ingrediente ao array ingredientes
            if(achou == false) {
                ingredientes.push(ingrediente);
                console.log(ingrediente);   
                console.log(ingredientes);
                mostra(ingrediente);
                contador++;
            }

    }    

</script>
2 respostas
solução!

Bom dia, Leonardo!

Eu fiz assim:

<meta charset="UTF-8">

<h1>Receitas do Yan</h1>

<script>
    var ingredientes = [];

    var quantidade = parseInt(prompt("Quantos ingredientes você vai adicionar?"));
    while (isNaN(quantidade) || quantidade <= 0) {
        quantidade = parseInt(prompt("Insira uma quantidade válida de ingredientes que você vai adicionar!"));
    }

    var contador = 1;
    while (contador <= quantidade) {
        var ingrediente = prompt("Informe o ingrediente " + contador);
        if (ingrediente != "") {
            var repetido = false;
            for (var i = 0; i < ingredientes.length; i++) {
                if (ingrediente == ingredientes[i]) {
                    repetido = true;
                    break;
                }
            }
            if (repetido == false) {
                ingredientes.push(ingrediente);
                contador++;
            }
            else {
                alert("Ingrediente repetido!!!");
            }
        }
    }

    console.log(ingredientes);
</script>

Pode-se observar que eu verifico se o ingrediente lido não é vazio em

if (ingrediente != "")

Além disso, eu verifico se a quantidade de ingredientes realmente é um número positivo em

while (isNaN(quantidade) || quantidade <= 0) {
        quantidade = parseInt(prompt("Insira uma quantidade válida de ingredientes que você vai adicionar!"));
}

Bom dia Rosicley!

Muito obrigado!