2
respostas

Dúvida com o for( )

Eu gostaria de um esclarecimento (bem bobo até) que me ajudaria muito a compreender melhor não apenas o for( ), mas outras funções. Nesse caso, o código tem uma parte assim:

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

            if( ingredientes[posicao] == ingrediente) {
                existe = true;
                break;
            } 
        }
            if (existe == false) {
                ingredientes.push(ingrediente);
                contador++
            } 

A minha dúvida é: por que a chave "{ }" do for( ) fecha antes do segundo if ( )? Os dois if ( ) não deveriam estar "dentro" das chaves do for( ) para o programa funcionar? Eu errei na primeira vez por que botei os dois if( ) "dentro" da chave do for( ), como abaixo:

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

            if( ingredientes[posicao] == ingrediente) {
                existe = true;
                break;
            } 
            if (existe == false) {
                ingredientes.push(ingrediente);
                contador++
            }
        } 

Nesse caso, o programa abre o prompt perguntando quantos ingredientes são, depois fica repetindo o prompt "Informe o ingrediente 1" em loop eterno. Tentei usar o "else" ao invés de outro if( ), mas o resultado foi o mesmo.

A minha grande dúvida em relação a isso é que eu pensava que, ao fechar a chave do for ( ), o programa parasse de rodar essa função, de forma que o segundo if ( ) não faria efeito para as variáveis.

2 respostas

você já respondeu sua própria dúvida, Fabricio, se você colocar os dois ifs no for o código vai ficar em loop e no caso do exercício proposto não existe ingredientes repetidos, é só umas questão do que foi proposto.

Qualquer dúvida, eu procura mais informações pra te ajudar.