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

Exercício Receitas - Utilizar o "Else"

Pessoal,

tentei fazer meu código utilizando o IF e, na sequência, sigo com o ELSE. Entretanto, ele ficou em loop...tentei ler várias vezes o código, mas não achei a falha. O que está errado?

<meta charset="UTF-8">

<h1>Aula 9 - Receitas</h1>
<hr>
<br>
<input/>
<button>Adicionar receita</button>

<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);

        for( var posicao = 0; posicao < ingredientes.length; posicao++) {

            if( ingredientes[posicao] == ingrediente) {

                alert("Ingrediente já adicionado!")
                break;
            } else {

                ingredientes.push(ingrediente);
                contador++;

            }
        }

    }
</script>
5 respostas
solução!

O código dentro do seu FOR nunca é executado pois a condição dele já começa falsa e é dentro dele que você faz a lógica para adicionar um ingrediente em ingredientes.

Obrigado Fernando!

Fernando eu tive a mesma ideia que a do Pedro, como assim o For nunca é executado porque condição já é falsa? Ele não iria iniciar o IF antes?

Assim como o While nas linhas anteriores, primeiro o For verifica a condição e depois executa o bloco interno dele, segue um teste:

for(var qualquer_variavel = 0; false; qualquer_variavel++){
alert(qualquer_variavel);
}

Esse código não irá mostrar pois a condição do For nunca será verdadeira. Neste outro exemplo:

for(var qualquer_variavel = 0; qualquer_variavel<10; qualquer_variavel++){
alert(qualquer_variavel);
}

Ele irá mostrar 10 alertas - mostrando de 0 até 9 - pois a condição começa como verdadeira (0<10)

Agora ficou mais claro.

Obrigado!!