【发布时间】:2017-10-11 03:12:57
【问题描述】:
这是第一篇文章,我也是编码新手,所以希望问题足够清楚。
我正在做一个基本的 JavaScript 练习。该程序在很大程度上是因为我需要它来解决一个问题。
程序会填充一系列警报。例如,如果您选择数学,然后在接下来的三个警报中输入:1、+、1,它会返回“您的答案是 2”(这是正确的)。然而,随后,它随后显示'呃哦!问题!!',这是不对的。
我不知道为什么会这样?
我已经在下面粘贴了相关代码。此外,带有所有代码的https://jsfiddle.net/poc4kzm9/ 在这里。
//////////////// MATHS CALCULATOR //////////////////////////
// logic for maths calculation
function mathCalculate(operator, firstNumber, secondNumber) {
console.log(operator);
if (operator === '+') {
add(firstNumber, secondNumber);
} else if (operator === '-') {
subtract(firstNumber, secondNumber);
} else if (operator === '/') {
divide(firstNumber, secondNumber);
} else if (operator === '*') {
multiply(firstNumber, secondNumber);
} else if (operator === 'sq') {
power(firstNumber, secondNumber);
} else if (operator ==='sqrt') {
squareRoot(firstNumber);
} else {
alert('Uh oh! Problem!!');
}
}
// collect required values for math
function mathSetup() {
// Set intial values for math calculator
const firstNumber = prompt('What is your first number?');
const operator = prompt('Which operator would you like to use? (+, -, /, *, sq, sqrt)');
let secondNumber;
// No need for a second number if sqrt-ing the first value
if (operator !== 'sqrt') {
secondNumber = prompt('What is your second number?');
}
mathCalculate(operator, firstNumber, secondNumber);
}
// The various functions by operator, one for each operator
function add(a,b) {
alert('Answer is ' + (parseFloat(a) + parseFloat(b)));
}
任何帮助将不胜感激。
【问题讨论】:
-
导致问题的代码位未包含在您的问题中。你不应该在你的运行循环中调用
mathCalculate(),而不是在mathSetup()之后。mathSetup()稍后会正确调用它。 jsfiddle.net/poc4kzm9/2 -
太棒了,谢谢!这是有道理的。
标签: javascript function conditional