1
resposta

Duvida execicio 11

No execicio 11 ele fala que não poderá adicionar um ingrediente que já exista, ajustei o código citado corretamente conforme a alternativa correta(A), porém ao incluir um ingrediente já existente o código não barrou e adiciou no console o ingrediente duplicado. Entendi errado a resposta?

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

            existe = true;
            break;

            }

        if( existe == false) {

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

    console.log(ingredientes);
</script>
1 resposta

Oi, Paulo, tudo bem?

O único problema do código é que, na linha do for, você utilizou ponto e vírgula após fechar os parênteses:

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

Apesar dessa sintaxe ser válida, ela não executa nenhum bloco de código. Então a verificação de ingrediente repetido não está sendo feita corretamente. Para corrigir, você deve abrir as chaves do bloco e colocar a lógica necessária lá dentro:

    for (var posicao = 0; posicao < ingredientes.length; posicao++) {
      if (ingredientes[posicao] == ingrediente) {

        existe = true;
        break;
      }
    }

Espero ter ajudado! Abraços e bons estudos :)