【问题标题】:Looping in Eloquent Javascript在 Eloquent Javascript 中循环
【发布时间】:2012-02-26 12:30:46
【问题描述】:

我在 javascript 中发现了以下函数:

for (var number = 0; number <= 12; number = number + 2)
  show(number);

输出如下

0
2
4
6
8
10
12

我希望是这样的

2
4
6
8
10
12
14

既然“number = number + 2”在“show(number);”之前,为什么先显示“0”而不是“2”?

【问题讨论】:

    标签: javascript loops syntax for-loop


    【解决方案1】:

    这是因为循环的顺序是这样的:

    1. 初始编号。
    2. 检查条件。
    3. 运行循环。
    4. 将数字增加 2。

    然后再次2-4直到条件为假,如果是则退出循环。

    for 循环翻译成这样的:

    var number = 0;
    while (number <= 12)
    {
      show(number);
      number = number + 2;
    }
    

    一般来说,for循环总是是这样工作的:

    for(Init Variable; Condition ; Changing Variable)
    {
       //Some Code
    }
    

    翻译为:

    Init Variable
    while (Condition )
    {
      //Some Code
    
      Changing Variable
    }
    

    【讨论】:

    • 感谢您的快速回复。
    • 我希望它转换为 var number = 0; while (number
    • 对不起,格式错误:@Dor Cohen @Dor Cohen 我希望它转换为var number = 0; while (number &lt;= 12) { number = number + 2; show(number); } 而不是var number = 0; while (number &lt;= 12) { show(number); number = number + 2; } 所以我猜for循环的工作方式与while-你说的循环,对吧?
    • 我不明白你的意思,for 循环的工作方式与我描述的 while 循环完全一样。
    • 如果我把 "show(number)" 放在 while 循环的最后(在 "number = number + 2" 之后),结果将是 2, 4, 6, 8, 10、12、14 正如我一开始所期望的那样(至少在 eloquent-javascript 控制台中)。在 while 循环中,您必须将“show(number)”放在“number = number + 2”之前以获得 0、2、4、6、8、10、12。在 for 循环中,您可以把“show(number)”放在最后,仍然得到“0, 2, 4, 6, 8, 10, 12。
    【解决方案2】:

    这样想:

    为什么要写黄色部分?

    这是您想要考虑的种子部分!

    所以它会从它的种子值开始,然后 - 将递增 ....

    【讨论】:

      【解决方案3】:

      0是函数for循环中number变量的初始值:

      var number = 0;
      

      当 number 变量达到 12 时,for 循环终止:

      number <= 12;
      

      这里有更多关于 for 循环的信息:http://www.w3schools.com/js/js_loop_for.asp

      【讨论】:

        猜你喜欢
        • 2018-08-22
        • 1970-01-01
        • 2014-11-23
        • 1970-01-01
        • 1970-01-01
        • 2017-11-19
        • 1970-01-01
        • 2021-02-13
        • 1970-01-01
        相关资源
        最近更新 更多