hola a todos, soy jonnathan, estoy tratando de crear una calculadora en javascript y estoy siguiendo un tutorial en youtube, pero por alguna razón, si sumo 1 y 1, el resultado 2 es una alerta.
var number1 = prompt("Input the first number"); var op = prompt("Input operator") var number2 = prompt("Input 3rd number") if (op == "+") { if (number1 == "1") { if (number2 == "1") { alert("2"); } if (number2 == "2") { alert("3"); } if (number2 == "3") { alert("4"); } if (number2 == "4") { alert("5"); } if (number2 == "5") { alert("6"); } if (number2 == "6") { alert("7"); } if (number2 == "7") { alert("8"); } if (number2 == "8") { alert("9"); } if (number2 == "9") { alert("10"); } } if (number2 == "1") { if (number1 == "1") { alert("2"); } if (number1 == "2") { alert("3"); } if (number1 == "3") { alert("4"); } if (number1 == "4") { alert("5"); } if (number1 == "5") { alert("6"); } if (number1 == "6") { alert("7"); } if (number1 == "7") { alert("8"); } if (number1 == "8") { alert("9"); } if (number1 == "9") { alert("10"); } } }dos veces tampoco hay errores en la consola que creo que podría ayudarme con este problema
hasta ahora la calculadora solo suma números y solo lo hace hasta 1 ti 9. ¿Cómo puedo solucionar este error?
En tu código:
if (op == "+") { if (number1 == "1") { if (number2 == "1") { alert("2"); }Esta sección está alertando a "2" primero. Y luego esta sección:
if (number2 == "1") { if (number1 == "1") { alert("2"); }Por eso aparece dos veces. Puedes escribir el programa como:
let number1 = parseInt(prompt("Input the first number")); let op = prompt("Input the operator"); let number2 = parseInt(prompt("Input the second number")); if (op == '+') alert(number1 + number2); else if (op == '-') alert(number1 - number2); else if (op == '*') alert(number1 * number2); else if (op == '/') alert(number1 / number2); else alert("Please enter a valid operator");Aquí usamos parseInt() , que devuelve el primer entero de una cadena.