【问题标题】:Multiplying Integers on a For Loop在 For 循环中乘以整数
【发布时间】: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


    【解决方案1】:

    在乘法之前,您没有将 mySum 设置为 10*i = 0。

    【讨论】:

      【解决方案2】:

      好吧,您将mySum 初始化为0,因此在循环的每次迭代中,您将i 乘以零并将结果(再次为零)保存回mySum。对于乘法,您必须从一开始。

      【讨论】:

      • 这是小事,嗯?非常谦卑的经历,就是这样。
      猜你喜欢
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      相关资源
      最近更新 更多