'The program keeps doing other if statements [closed]
I'm building a calculator application, and when I want to use another mathematical expression, it doesn't work. I want to do subtraction, and it does addition, as if the program didn't see other if statements.
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));
}
Thanks.
Solution 1:[1]
You should use == or === for comparing values. The single = is for assignment.
if (expression === "addition") { // Do something... }
Solution 2:[2]
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));
}
You were assigning the variable instead of comparing it. The assignment operator is =, you want == for a comparison. I also added a space after Value1: in the prompts, otherwise you were asking for undefined. (I’m assuming you want parseInt on the division result because otherwise it would be a float.)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Camilo |
| Solution 2 | Shannon |
