1
resposta

[Dúvida] E se o if estivesse dentro do for?

Peguei para refazer esse exercício esses dias e acabei ficando muito em dúvida do por que que se colocar o "if(existe==false)" dentro do "for" acabaria fazendo com que pedisse infinitamente para que adicionasse o primeiro ingrediente. Perguntei para vários amigos e nenhum conseguiu me explicar de um jeito que eu entendesse.

1 resposta

Ele criou uma variável booleana para verificar se o ingrediente já foi adicionado, mas para isso também teve que criar laços de repetição para verificar todos os ingredientes adicionados no vetor, lembrando que para adiciona-los a variável booleana tem que ser falsa.

Outro Exemplo:

var nomes = [];

var quantidade = parseInt(prompt("Digite a quantidade de nomes que deseja adicionar: "));

var contador = 0;

while (contador < quantidade) {
    var nome = prompt("Digite algum nome: ");
    var achou = false; //para verificar se achou o nome

    for (var i = 0; i < nomes.length; i++) {
            if (nome == nomes[i]) {
                alert("Não repita nome!!");
                achou = true; //achou o nome igual
            }
    }

    if (achou == false) { //não achou nome igual
            nomes.push(nome); //adiciona o nome ao vetor
            alert("Nome adicionado com sucesso!");
            contador++;
        }
}
console.log(nomes);

Espero ter ajudado.