Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

144
Views
keep asking user for input in javascript

I am working on a javascript code and I am learning it for the first time I want to create a calculator and it should keep asking user for numbers and providing output until the user enters a specific number instead of number 1

The code:

<html>
<head>
    <title>Calculator</title>
</head>
<body>
    <script>
        const operator = prompt('Enter operator ( either +, -, * or / ): ');

// take the operand input
const number1 = parseFloat(prompt('Enter first number: '));
const number2 = parseFloat(prompt('Enter second number: '));

let result;
if(number1 == '-999'){
    document.write('The program is terminated');
}
else if (operator == '+') {
    result = number1 + number2;
}
else if (operator == '-') {
    result = number1 - number2;
}
else if (operator == '*') {
    result = number1 * number2;
}
else {
    result = number1 / number2;
}

document.write(`${number1} ${operator} ${number2} = ${result}`);
    </script>
</body>
</html>

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Create a while True loop and break out of it if if -999 is entered.

while (true) {
        const operator = prompt('Enter operator ( either +, -, * or / ): ');

        // take the operand input
        const number1 = parseFloat(prompt('Enter first number: '));
        const number2 = parseFloat(prompt('Enter second number: '));

        let result;
        if(number1 == '-999'){
            document.write('The program is terminated');
            break;
        }
        else if (operator == '+') {
            result = number1 + number2;
        }
        else if (operator == '-') {
            result = number1 - number2;
        }
        else if (operator == '*') {
            result = number1 * number2;
        }
        else {
            result = number1 / number2;
        }
        document.write(`${number1} ${operator} ${number2} = ${result}`);
        document.write("<br>");
}

about 4 years ago · Juan Pablo Isaza Report

0

This is not a direct answer but more of a preview of the sort of thing you'll be writing when you start making user interfaces in HTML rather than using modal dialogs.

It does demonstrate how to use a while loop to handle multiple values (which translates to multiple prompts in the case of your current interface).

//Identifies DOM elements, and defines an array and an error string
const 
  operatorSelect = document.getElementById("operator-select"),
  numberInput = document.getElementById("number-input"),
  enterButton = document.getElementById("enter-button"),
  calculateButton = document.getElementById("calculate-button"),
  resultDiv = document.getElementById("result-div"),
  numbersArray = [],
  DIV0_ERR = "Can't divide by zero";

// Calls `enter` or `calculate` whenever corresponding button is clicked
enterButton.addEventListener("click", enter);
calculateButton.addEventListener("click", calculate);

function enter(){

  // Adds number to array, resets input, and clears resultDiv if necessary
  const number = parseFloat(numberInput.value);
  numbersArray.push(number);
  numberInput.value = 0;
  resultDiv.textContent = "";
}

function calculate(){
  // Returns early if no numbers have been entered
  if(numbersArray.length === 0){
    return;
  }
  // Gets operator and first number, and prepares to loop through array
  let
    operator = operatorSelect.value,
    resultSoFar = numbersArray[0],
    currentIndex = 0,
    currentNumber;

  // Each iteration: increments index, gets number, updates `resultSoFar`
  while(++currentIndex < numbersArray.length){
    currentNumber = numbersArray[currentIndex];
    resultSoFar = doOperation(operator, resultSoFar, currentNumber);
  }
  // Clears numbers Array and resets input
  numbersArray.length = 0;
  numberInput.value = 0;

  // Returns most recent result from `doOperation`
  resultDiv.textContent = resultSoFar;
}

function doOperation(op, num1, num2){
  // Performs operation based on operator (or returns error string)
  if(num1 === DIV0_ERR){ return DIV0_ERR; }
  if(op === "+"){ return num1 + num2; }
  if(op === "-"){ return num1 - num2; }
  if(op === "*"){ return num1 * num2; }
  if(op === "/"){ return (num2 === 0) ? DIV0_ERR : (num1 / num2); }
}
select, input, button, div{ display: block; width: 8rem; }
#operator-select, #calculate-button{ margin: 1rem 0; }
#result-div{ text-align: center; font-size: 1.8rem; }
Select an operation, enter numbers, then click "CALCULATE"
<select id="operator-select">
    <option>+</option>
    <option>-</option>
    <option>*</option>
    <option>/</option>
</select>
<input type="number" id="number-input" value = "0" />
<button id="enter-button">ENTER</button>
<button id="calculate-button">CALCULATE</button>
<div id="result-div"></div>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!