在这里开始JavaScript学习者......
我正在通过Adrian Neumann的Simple Programming Problems工作,我的问题是关于小学练习中的第6位。
编写一个程序,要求用户输入一个数字
n
,并让他可以选择计算总和并计算1,...,n
的乘积。
// var myArray = []; // for testing
var mySum = 0;
var userNum = prompt("What is your number? ");
var userChoice = prompt("Would you like to add up (+) or multiply (*) all the numbers from 1 to your number? Please enter (+) or (*): ");
if (userChoice == "+") {
for (var i = userNum; i > 0; i--) {
mySum += +i;
}
console.log("Your answer is " + mySum);
} else if (userChoice == "*") {
for (var i = userNum; i > 0; i--) {
mySum *= +i;
// myArray.push(i); // for testing
}
console.log("Your answer is " + mySum);
// console.log(myArray); // for testing
}
输入乘法值时,答案始终为0
。显然,我认为0
被包含在迭代中,所以我设置了一个空数组myArray
,并使用myArray.push(i);
将所有数字推送到数组... 0
从未作为数组中的值包含在内。
除了一些明显的表格验证考虑因素外,有人能告诉我我缺少什么吗?为什么我的答案总是0
?
注意:代码的sum
部分似乎运行得非常出色。
请注意我是JavaScript的 beginniner ,所以如果你想发表评论,请告诉我为什么你改变代码的方式,而不是简单地将代码吐回给我。这是一个很大的帮助,谢谢。
答案 0 :(得分:0)
在乘法之前,您没有将mySum
设置为1
。 0*i
= 0。
答案 1 :(得分:0)
好吧,您将mySum
初始化为0
,因此在循环的每次迭代中,您将i
乘以零,并将结果(再次,零)保存回{{1 }}。对于乘法,你必须从一开始。