如何使用if语句调用函数?

时间:2018-11-21 09:14:32

标签: javascript

function calculator(a, b, operation) {
  
  if (addNum()) {
  var result = addNum(); // 4
    console.log("the result is " + result);
  } if (subsNum()) {
   result = subsNum(); // 2
     console.log("the result is " + result);
  } if (multNum()) {
     result = multNum(); // 6
     console.log("the result is " + result);
  } if (divNum()) {
     result = divNum(); // 1
     console.log("the result is " + result);
  }

}

function addNum(a, b) {
  return 2 + 2;
// return  a + b;  //why not?
}

function subsNum(a, b) {
  return 4 - 2;
   // return a - b;
}

function multNum(a, b) {
  return 2 * 3;
     // return a * b;
}

function divNum(a, b) {
   return 8 / 8;
    // return a / b;
}


  calculator();

创建一个使用2个参数并返回这些参数总和的函数addNumbers。

创建一个包含两个参数并返回这些参数之差的函数减去数字。

创建一个包含两个参数并返回这些参数乘积的函数multipleNumbers。

创建一个使用2个参数并返回这些参数的商的函数divideNumbers。

创建一个包含3个参数的函数计算器。前两个参数是数字。第三个参数称为operation,是您将要执行的操作。

  • 如果操作是“加法”,则应执行函数addNumbers。
  • 如果操作是“减法”,则应执行函数减去数字。
  • 如果操作是“乘法”,则应执行功能multipliNumbers。
  • 如果操作是“除法”,则应执行函数divideNumbers。

如何用参数替换整数(例如在addNum()函数中添加a + b而不是2 + 2),然后在用任何方法调用calculator()函数时如何替换这些参数你想要整数吗?是否可以这样做calculator(addNum(2,5));addNum(a,b )是否返回a + b?

3 个答案:

答案 0 :(得分:0)

无需使用if语句调用它,因为它会使事情复杂化。

  

是否有可能像这个计算器那样做(addNum(2,5)); ?如果addNum(a,b)返回a + b?

这是可能的,您应该那样做。基本上,您是将一个函数传递给计算器函数。因此,它的工作方式类似于-> calculator function接受包含另一个函数(operationaddNum等)的subsNum参数并执行它。

function calculator(operation) {
  return operation
}

function addNum(a, b) {
  return a + b;
// return  a + b;  //why not?
}

function subsNum(a, b) {
  return a - b;
   // return a - b;
}

function multNum(a, b) {
  return a * b;
     // return a * b;
}

function divNum(a, b) {
   return a / b;
    // return a / b;
}

console.log(calculator(addNum(2,3)));
// returns 5

还有改进代码和重复的空间。但这是另一个故事。

答案 1 :(得分:0)

  

如何用addNum()函数中的arguments(在   添加a + b代替2 + 2的示例)

如前所述,您可以使用参数。使用参数可以将变量传递到函数中,以便可以使用它们。 例如:

function addNum(a, b) {
  return a + b;
}

因此,既然addNum接受2个值(因为它们是两个参数ab),那么您在调用自己的电话时必须通过功能:

addNum(5, 2); <---这将返回(不打印)5(a)加(+)2(b)的值,因此返回7 < / p>

这是使用参数的方式。

  

在调用Calculator()时如何替换这些参数   可以使用您想要的整数吗?

如果计算器具有3个自变量aboperation,则表示在计算器函数a中代表第一个数字,b代表第一个数字第二个数字,operation代表数学运算符。当函数执行并运行时,所有这些变量都将具有值。因此,在计算器中,您可以使用operation语句检查if等于什么(例如:如果operation == "addition",则用两个数字{ {1}}和addNum(因此我们将执行a将两个数字相加)。您可以将此逻辑应用于其他操作。

  

是否有可能像这个计算器那样做(addNum(2,5)); ?如果   addNum(a,b)返回a + b?

虽然这是完全可能的,但您必须重写b函数。此外,这不符合您提供的规格。目前,使用您提供的代码,您无法执行此操作,因为您的addNum(a, b)函数需要3个参数:

calculator-第一个数字

calculator-第二个数字

a-告诉我们是否要添加(b),减去(operation)等的运算符

因此,在调用addition函数时,必须通过这3个参数 pass 。进行subtraction并不会实现这一点,因为calculator的结果为7,所以这等效于编写calculator(addNum(2,5));,这在您在这种情况下仅传递一个参数是没有意义的

因此,为了正确使用addNum(2, 5)函数,您需要像这样传递3个值:

calculator(7)

这将告诉计算器函数将两个数字(2和5)加在一起(由于calculator为“加法”)。但是,为了使它起作用,您首先必须编辑计算器函数的内部内容,以适应测试calculator(2, 5, "addition")是什么的逻辑,以便正确决定要调用的函数。

答案 2 :(得分:0)

  

创建一个包含3个参数的函数计算器。前两个   参数是数字。第三个参数称为运算,是   您将执行的操作。

我建议创建一个标志,您可以在其中选择要执行的功能。 例如:

//function call    
calculator(2,5,'addition'); 

// function method
calculator(a,b,flag){
 switch(flag) {
     case 'addition': addNum(a,b);
        break;
        ...
}}