【发布时间】:2016-10-24 09:36:29
【问题描述】:
在这里开始 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 的初学者,所以如果您想发表评论,请告诉我为什么您以您的方式更改代码,而不是简单地将代码吐回给我.这是一个很大的帮助,谢谢。
【问题讨论】:
标签: javascript types type-conversion iteration multiplication