我正在使用提示创建一个基本计算器。用户输入一个数字,一个操作数和另一个数字,这将给出正确的答案。
问题: 无论使用何种算符,我的数字都会成倍增加。例如,输入5 + 5会给我25的值。
为什么我的eval计算会这样做,即使我已经指定了不同的算术运算符?
我无法弄清楚我的代码是如何/为什么不正确的。也许我忽略了一些至关重要的新手。任何帮助将不胜感激。
var firstNumber = prompt("Enter a number", "");
var sign = prompt("Enter an operand", "");
var secondNumber = prompt("Enter another number", "");
if (sign = "+") {
answer = eval(+firstNumber + +secondNumber);
}
if (sign = "-") {
answer = eval(+firstNumber - +secondNumber);
}
if (sign = "/") {
answer = eval(+firstNumber / +secondNumber);
}
if (sign = "*") {
answer = eval(+firstNumber * +secondNumber);
}
var answer = document.write("Your answer is" + answer);
答案 0 :(得分:1)
您在if语句条件中为sign
分配值是错误的。这样做
var firstNumber = prompt("Enter a number", "");
var sign = prompt("Enter an operand", "");
var secondNumber = prompt("Enter another number", "");
if (sign === "+") {
answer = firstNumber + secondNumber;
}
if (sign === "-") {
answer = firstNumber - secondNumber;
}
if (sign === "/") {
answer = firstNumber / secondNumber;
}
if (sign === "*") {
answer = firstNumber * secondNumber;
}
var answer = document.write("Your answer is" + answer);
答案 1 :(得分:0)
您正在分配操作,而不是检查是否相等。您需要使用sign == *
或sign === *
,因为使用sign = "*"
只会使符号字面意思*
答案 2 :(得分:0)
当然,你在做
if (sign = "*")
代替
if (sign == "*")
所以最后一次比较每次评估为true