Estoy creando una aplicación de calculadora y cuando quiero usar otra expresión matemática, no funciona. Quiero hacer una resta, y hace una suma, como si el programa no viera otras declaraciones if.
function Output(a) { window.alert(a) } expression = window.prompt("what expression do you want to use? addition/subtraction/multiplication or divison"); if (expression = "addition") { additionValue1 = window.prompt("Value1: "); additionValue2 = window.prompt("Value2: "); Output(parseInt(additionValue1, 10) + parseInt(additionValue2, 10)); } if (expression = "subtraction") { subtractionValue1 = window.prompt("Value1: "); subtractionValue2 = window.prompt("Value2: "); Output(parseInt(subtractionValue1, 10) - parseInt(subtractionValue2, 10)); } if (expression = "multiplication") { multiplicationValue1 = window.prompt("Value1: "); multiplicationValue2 = window.prompt("Value2: "); Output(parseInt(multiplicationValue1, 10) * parseInt(multiplicationValue2, 10)); } if (expression = "divison") { divisionValue1 = window.prompt("Value1: "); divisionValue2 = window.prompt("Value2: "); Output(parseInt(divisionValue1, 10) / parseInt(divisionValue2, 10)); }Gracias.
Debe usar == o === para comparar valores. El único = es para asignación.
if (expression === "addition") { // Do something... }expression = window.prompt("what expression do you want to use? addition/subtraction/multiplication or divison"); if (expression == "addition") { additionValue1 = window.prompt("Value1: "); additionValue2 = window.prompt("Value2: "); Output(parseInt(additionValue1, 10) + parseInt(additionValue2, 10)); } if (expression == "subtraction") { subtractionValue1 = window.prompt("Value1: "); subtractionValue2 = window.prompt("Value2: "); Output(parseInt(subtractionValue1, 10) - parseInt(subtractionValue2, 10)); } if (expression == "multiplication") { multiplicationValue1 = window.prompt("Value1: "); multiplicationValue2 = window.prompt("Value2: "); Output(parseInt(multiplicationValue1, 10) * parseInt(multiplicationValue2, 10)); } if (expression == "divison") { divisionValue1 = window.prompt("Value1: "); divisionValue2 = window.prompt("Value2: "); Output(parseInt(divisionValue1, 10) / parseInt(divisionValue2, 10)); }Estabas asignando la variable en lugar de compararla. El operador de asignación es =, quiere == para una comparación. También agregué un espacio después de Value1: en las indicaciones; de lo contrario, estaba pidiendo indefinido. (Supongo que desea parseInt en el resultado de la división porque, de lo contrario, sería un flotador).