Javascript Calculator с использованием операторов if / else - PullRequest
0 голосов
/ 25 мая 2018

У меня есть школьный проект, в котором меня просят построить базовый калькулятор Javascript, используя операторы if / else.Я очень плохо знаком с этим языком (и программированием в целом), и у меня возникают проблемы с применением синтаксиса, который я выучил, и как успешно решать проблемы.

Итак, к коду: Как вы увидите вкомментарии в файле HTML, весь код JavaScript должен быть в файле js.Во-первых, мне нужно связать события onclick, добавив код, чтобы получить все входные элементы в массив, называемый input (что я и сделал), а затем использовать цикл for для итерации массива (который я начал).Затем в цикле for мне нужно использовать оператор if / else, чтобы пропустить элементы ввода, которые не являются кнопками, и установить обработчик onclick других элементов ввода в функцию, которая вызывает внутри него переменную calc.Вот где я застрял в том, как выполнить эту задачу.

Мне также нужно обязательно передать входные данные [i] .id в calc.Затем, конечно, я должен завершить функцию calc (), используя операторы if / else.

В файле js я вставил комментарии, чтобы показать мой мыслительный процесс и вопросы, которые я сам себе задавал для решения проблемы..

Буду очень признателен за любую помощь или направление, которое вы можете мне дать.Спасибо!

var calcu = function(calcValue) {

  /* "calc.output.value += "1";"" use to output numbers? */

  if (calcValue) {


  }
};

document.getElementById(inputs[i].id).onclick = calcu;
for (var i = 0; i <= inputs[id].length, i++) {
  /* input button elements onlick handler needs to be set to (equal to?) a
       function that calls the calcu variable inside of it */
  if (input.type = button) {

    console.log()

    /* Need input that is not a button to be skipped*/
  } else(input.type != button) {

  }

}
<body>
  <div id="content">
    <div id="calculator-container">
      <!-- DO NOT CHANGE THE FORM! Only use external JavaScript files -->
      <form name="calc">
        <label for="output">A Basic Calculator</label>
        <!-- the name of the textbox is "output" -->
        <input id="output" name="output" type="text" readonly>

        <br>
        <input type="button" id="1" value="  1  ">
        <input type="button" id="2" value="  2  ">
        <input type="button" id="3" value="  3  ">
        <input type="button" id="+" value="  +  ">
        <br>
        <input type="button" id="4" value="  4  ">
        <input type="button" id="5" value="  5  ">
        <input type="button" id="6" value="  6  ">
        <input type="button" id="-" value="  -  ">
        <br>
        <input type="button" id="7" value="  7  ">
        <input type="button" id="8" value="  8  ">
        <input type="button" id="9" value="  9  ">
        <input type="button" id="*" value="  x  ">
        <br>
        <input type="button" id="c" value="  C  ">
        <input type="button" id="0" value="  0  ">
        <input type="button" id="equate" value="  =  ">
        <input type="button" id="/" value="&divide;">
      </form>
    </div>

  </div>

</body>

Ответы [ 2 ]

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

Ну, я думаю, что это «домашняя работа» из вашей школы.

Я предполагаю, что этот калькулятор должен выполнять умножение и деление до сложения и вычитания.

На вашем месте ябудет подходить к задаче в следующем порядке:

  1. Сохранить пользовательские вводы в inputs
  2. Когда пользователь нажимает =, он повторяет inputs и выполняет вычисление.
  3. При выполнении вычисления объявляйте временную переменную, которая сохраняет обновленное значение после каждого вычисления.Если дано указание, вы должны выполнить умножение и деление до сложения и вычитания.

  4. выводит вычисленное значение

Там может быть несколько точек, где вызастрянет:

  1. Вам необходимо преобразовать пользовательские вводы в правильный номер.Например, входные данные 3, 5, 1 необходимо преобразовать в 351
  2. . Вам необходимо найти правильный способ выполнения умножения и деления перед сложением и вычитанием при итерации массива inputs.

Счастливого кодирования ~

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

Я нашел несколько основных ошибок, таких как;или = отсутствует также, если вы хотите поместить условие в другую часть, чем вы должны использовать else, если условие.вам нужно передать входное значение в цикл for правильно.

var calcu = function(calcValue) {

  if (calcValue) {


  }
}

document.getElementById(inputs[i].id).onclick = calcu;
for (var i = 0; i <= inputs[id].length; i++) 
{
  if (input.type == button) 
  {
     console.log();
  } 
  else if(input.type != button) {

  }

}

Вот ваш HTML-код.

<body>
  <div id="content">
    <div id="calculator-container">
      <!-- DO NOT CHANGE THE FORM! Only use external JavaScript files -->
      <form name="calc">
        <label for="output">A Basic Calculator</label>
        <!-- the name of the textbox is "output" -->
        <input id="output" name="output" type="text" readonly>

        <br>
        <input type="button" id="1" value="  1  ">
        <input type="button" id="2" value="  2  ">
        <input type="button" id="3" value="  3  ">
        <input type="button" id="+" value="  +  ">
        <br>
        <input type="button" id="4" value="  4  ">
        <input type="button" id="5" value="  5  ">
        <input type="button" id="6" value="  6  ">
        <input type="button" id="-" value="  -  ">
        <br>
        <input type="button" id="7" value="  7  ">
        <input type="button" id="8" value="  8  ">
        <input type="button" id="9" value="  9  ">
        <input type="button" id="*" value="  x  ">
        <br>
        <input type="button" id="c" value="  C  ">
        <input type="button" id="0" value="  0  ">
        <input type="button" id="equate" value="  =  ">
        <input type="button" id="/" value="&divide;">
      </form>
    </div>

  </div>

</body>

Надеюсь, это поможет вам.

...