Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Exercicio

Boa noite. estou exercitando, fazendo um programa para subtrair o (6-3-2 ) mas eu não entendi. o programa esta certo só não estou entendendo como ele funciona. alguém pode me ajudar?? É uma subtração não estou entendendo o if e o else como eles estão funcionando sei que a primeira quando numero é igual a 1 ele vai para o else fazendo o primeiro numero (6) ser igual a variavel total. quando a var numero é igual a 2 (segunda repetição) valor para diminuir sera 3, ele vai para if e não estou entendendo oque ele faz dai pra frente

if( conta == "subtração")
    {
        var quantidade = parseInt(prompt("Informe a quantidades de numeros desejado"));
        var numero = 1;
        var total = 0;
        while(numero <= quantidade)
        {
            conta = parseInt(prompt("Digite o numero desejado"));

            if(numero == 2)
            {
                total = conta;
            }
            else
            {
                total = total - conta;
            }
            numero++;
            achou = true;
        }
        alert("O resultado é " + total);
    }
5 respostas

Olá Gustavo!

Primeiro eu gostaria de entender qual o problema que você quer resolver. O código não me diz nada porque eu não sei o que tipo de problema ele resolve. Ele funciona, mas não sei o que ele faz.

Abraço,

Matheus Alberto

A segunda iteração (numero = 2) está descartando o valor da primeira iteração (numero = 1)

Supondo que no primeiro loop:

quantidade = 3
total = 0
numero = 1

enquanto o numero for <= 3 {
    conta = 6 (o valor digitado)
    if ( 1 é igual a 2?) não, segue para o else

    else
    total recebe 0 - 6
}

Agora no segundo loop:

quantidade = 3
total = 6
numero = 2

enquanto o numero for <= 3 {
    conta = 3 (o valor digitado)
    if ( 2 é igual a 2?) sim, entra no if {
        //total (que antes era 6) agora recebe 3, 
        //descartando o 6 da memoria
        total = 3 
    }
    else

}

Em resumo, o código apresentado está calculando 3-2 ao invés de 6-3-2

Em outro exemplo, se os números digitados fossem 550 -10-5 o programa iria descartar o 550 e o resultado seria 5

solução

Na verdade, o if e else não são necessários caso o problema seja apenas subtrair os números digitados.

O código pode ser escrito da seguinte forma:

quantidade = valor digitado
int valor ;
total = 0
numero = 1

enquanto ( numero <= quantidade){
    valor = valor digitado
    total = total - valor

    numero ++
}
print(total)

Espero ter ajudado!

Oq seria?

int valor;
print(total);

int valor é uma variavel criada para receber a entrada do usuário. Tem a mesma função do "conta" do seu código. O print() é uma função para mostrar a saida no console, mas no seu caso parece estar usando o "alert("O resultado é " + total)" que tem a mesma finalidade de mostrar o resultado.

// pode escrever assim
quantidade = valor digitado
total = 0
numero = 1

enquanto ( numero <= quantidade){
    conta = valor digitado
    total = total - valor

    numero ++
}
alert("O resultado é " + total)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software