Создание простого калькулятора - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь решить данную мне проблему, и она включает в себя использование базовых циклов, функций и условий.Мне дали следующее:

// TODO: complete program

console.log(calculate(4, "+", 6));  // Must show 10
console.log(calculate(4, "-", 6));  // Must show -2
console.log(calculate(2, "*", 0));  // Must show 0
console.log(calculate(12, "/", 0)); // Must show Infinity

, и это моя попытка (не работает, конечно).Кто-нибудь может подсказать мне, что я делаю неправильно?

function calculate(n1, n2, n3) {
  let calc
  if n2 = "+" {
    (calc = +)
  };
  else if n2 = "-" {
    (calc = -)
  };
  else if n2 = "*" {
    (calc = * )
  };
  else {
    (calc = /)
  };
  let acalc = (n1 + n2 + n3);
  return acalc;
}

console.log(calculate(4, "+", 6)); // Must show 10
console.log(calculate(4, "-", 6)); // Must show -2
console.log(calculate(2, "*", 0)); // Must show 0
console.log(calculate(12, "/", 0)); // Must show Infinity

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Я бы взял данные, заданные в параметре n2, и сразу же дал бы расчет.Также у вас были некоторые проблемы с () в вашем коде.

function calculate(n1, n2, n3) {
if (n2 == "+") {
    return n1 + n3;
} else if (n2 == "-") {
    return n1 - n3;
} else if (n2 == "*") {
    return n1 * n3;
} else {
    return n1 / n3;
}; };
0 голосов
/ 29 мая 2018

Нельзя устанавливать переменные равными операторам.Ваши блоки if должны выглядеть следующим образом:

if (n2 == "+") {
  return parseInt(n1) + parseInt(n3);
};

Используйте parseInt, если вы передаете строки вместо чисел

...