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

Dúvida no for

Queria entender melhor como funciona o for nesse código, se alguem puder me explicar de forma detalhada agradeço.

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

Nesse código, o que o for está fazendo é percorrer todo o array de ingrediente em cada interação do while, para verificar se o ingrediente informado já existe.

Se ainda não tiver claro fala ai!

solução!

Fala Marcos,

Vou tentar te ajudar!

var posicao Vai iniciar a variável que irá controlar as repetições do laço.

posicao < ingredientes.length É a condição para o laço ocorrer. Neste caso, na primeira repetição, a variável posicao será 0 (lembra que no inicio do for você iniciou ela como zero?) e esse valor será menor que o tamanho da lista de ingredientes (o tamanho da lista de ingredientes é obtido pelo ingredientes.length)

posicao++ É o incremento na variável de controle. Cada vez que o for verificar que a variável posicao é menor que o tamanho da lista, será executado o código do bloco for e será somado 1 à variável posicao.

Na prática, todo ingrediente que você colocar no prompt, será verificado pelo for criado.

No primeiro ingrediente ele vai adicionar direto o ingrediente já que a lista está vazia.

No segundo ingrediente ele vai acessar o item 0 através do comando ingredientes[posicao] e se esse item já estiver na lista, ele vai atribuir o valor true na variavel existe e vai acionar o break do for. Nesse momento seu for para de funcionar e o usário volta para o while. Caso o segundo ingrediente não exista, a variável existe permanecerá como false e o ingrediente será adicionado à lista através do ingredientes.push e será incrementado 1 ao contador do while que serve de controle para receber a quantidade total de ingredientes definidos no inicio.

Em resumo o for vai fazer o trabalho de acessar cada item da sua lista de ingredientes. A variável posicao será sempre incrementada e mudará o índice da consulta na array. Na primeira repetição fica ingredientes[0] na segunda fica ingredientes[1] na terceira fica ingredientes[2] e por ai vai.

Espero não ter complicado kkkk

Abraço!

Poxa agora ficou tudo super esclarecido ! Muito obrigado.