CALCULATION USING FUNCTION WITHIN FUNCTION - JAVASCRIPT

Asked

Viewed 103 times

-3

Good afternoon, I have a problem where I can’t get the final result. The program is as follows: the user will enter the values, the operation you want (sum or subtraction), and the program will perform the rest.

I am learning function, and so I would like to perform this calculation using functions (sum and subtraction) within another main function (calculation). From now on, thank you!

var n1 = prompt('Digite o primeiro número:')
var n2 = prompt('Digite o segundo número:')

n1 = parseInt(n1)
n2 = parseInt(n2)

var operacao = prompt('Digite a operação que você deseja(soma ou subtração)')

function calculo(n1,n2, operacao){

    if (operacao == 'soma') {
        callbackSoma(n1,n2)

    }else if(operacao == 'subtracao') {
        callbackSubtracao(n1,n2)

    }else{
        document.write('Digite uma operação válida')
    }
}

function callbackSoma(n1,n2){
    return resultado = n1+n2 
}

function callbackSubtracao(n1,n2){
    return resultado = n1-n2
}

document.write('o resultado final foi de: ' +calculo(n1,n2,operacao))
  • Inside the callbackEtc functions you only need to return the value. Ex: return n1+n2 (instead of return resultado = n1+n2, which is unnecessary), and in function calculo you need to return too: return callbackSoma(n1,n2) instead of just callbackSoma(n1,n2). And put a semicolon at the end of the lines. It may seem "fresh", but it avoids some bizarre situations that may occur if you don’t use them, such as that one and that one (see more about this here).

  • to yes, thank you very much!

2 answers

0

You don’t need the parameters in the function, these inputs are already set in the prompt

NOTE: the following code prevents the return of the type Digite uma operação válidao resultado final foi de: undefined or the type o resultado final foi de: NaN case any entry in the prompt be void

var n1 = parseInt(prompt("Digite um número qualquer"));
var n2 = parseInt(prompt("Digite outro número qualquer"));
var operacao = prompt('Digite a operação que você deseja(soma ou subtração)');
var total;

  function calculo() {
    if (operacao =="subtracao") {
        return callbackSubtracao(total);
    } else if(operacao =="soma"){
        return callbackSoma(total);
    }else{
      return('Digite uma operação válida')
    }

  }

  function callbackSubtracao(total) {
    return "o resultado final foi de: " +(n1-n2);
  }

  function callbackSoma(total) {
    return "o resultado final foi de: " +(n1+n2);
  }


  console.log(calculo())

-1


Only one little detail was missing to work, the Return inside the method calculo

var n1 = prompt('Digite o primeiro número:')
var n2 = prompt('Digite o segundo número:')

n1 = parseInt(n1)
n2 = parseInt(n2)

var operacao = prompt('Digite a operação que você deseja(soma ou subtração)')

function calculo(n1,n2, operacao){

    if (operacao == 'soma') {
        return callbackSoma(n1,n2)

    }else if(operacao == 'subtracao') {
        return callbackSubtracao(n1,n2)

    }else{
        document.write('Digite uma operação válida')
    }
}

function callbackSoma(n1,n2){
    return resultado = n1+n2 
}

function callbackSubtracao(n1,n2){
    return resultado = n1-n2
}

document.write('o resultado final foi de: ' +calculo(n1,n2,operacao))
  • Ah yes, thank you Thiago!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.