【问题标题】:Understanding process of nested for loop with alert result了解带有警报结果的嵌套 for 循环的过程
【发布时间】:2017-10-24 22:01:38
【问题描述】:

警报结果是 13,我不确定获得它的过程是什么。我了解循环的作用以及 += 的含义,但是不确定它们的连接或第二个循环如何影响结果。

var v=1;

for(i=1;i<5;i++)
  for(j=2;j<5;j++)
    v+=1;

alert(v);

【问题讨论】:

  • 第一个循环运行四次 (i=1,2,3,4),对于每个循环,第二个循环运行三次 (j=2,3,4)。因此,第二个循环一共运行了 12 次,所以 v 从 1 开始,递增 12 次。

标签: javascript loops variables for-loop alert


【解决方案1】:

第一个循环运行 4 次(从 1 到 4)。第二个循环运行 3 次(从 2 到 4)。所以内部指令执行 4*3 = 12 次,我们有 12 个增量(+=1)。由于初始值为 1,您将得到 (1 + 12) 即 13。

【讨论】:

    【解决方案2】:

    这实际上是一个非常简单的问题,您几乎可以在任何语言中看到它。

    在代码的第一行,声明“v”,它会在内存中留出一小块空间来保存值。

    当您说v=1 时,您将值“1”保存在那个小内存中。

    当您说v+=1 时,您是在说“从那一小块内存中获取值,将其加一,然后将结果放入那一小块内存中。

    您有两个循环,因此每次i 更改时,内部循环都会执行一次 - 所以您最终会执行 4*3(见下文...)v+=1

    并且由于您以 1 开始,因此您的结果计算为 (4*3) + 1

    我是如何获得“4*3”处决的?您的内部循环从值 2 开始,然后到值 5。5-2 = 3。这就是三个。外循环从 1 开始,到 5 结束; 5-1 = 4。

    【讨论】:

    • 很好的解释!虽然 OP 不是我 :p 它是 Bobby
    • 哎呀...抱歉 :) 我一定看到了您编辑的标签,并认为是您发布了原始帖子!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    相关资源
    最近更新 更多