Estoy trabajando en un código javascript y lo estoy aprendiendo por primera vez Quiero crear una calculadora y debería seguir pidiéndole números al usuario y proporcionando resultados hasta que el usuario ingrese un número específico en lugar del número 1
El código:
<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>Cree un ciclo while True y salga de él si se -999 break
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>"); }Esta no es una respuesta directa, sino más bien una vista previa del tipo de cosas que escribirá cuando comience a crear interfaces de usuario en HTML en lugar de usar cuadros de diálogo modales.
Demuestra cómo usar un ciclo while para manejar múltiples valores (lo que se traduce en múltiples prompt en el caso de su interfaz actual).
//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>