技术问询:为何这段JavaScript for循环代码的输出结果为16?
拆解这段for循环的执行逻辑,搞清楚为什么输出是16
没问题,我来一步步给你掰明白这段代码的运行过程,保证你看完就懂~
首先先看代码的初始状态:
var x = 1; for (var i = 0; i < 3; i++) { x += 5 * i; }
先明确for循环的三个核心部分
for循环的结构是 for(初始化表达式; 条件判断表达式; 更新表达式),执行顺序是:
- 先执行初始化表达式(只执行一次)
- 检查条件判断表达式,如果为true就进入循环体,为false就结束循环
- 循环体执行完后,执行更新表达式,然后回到步骤2重复判断
逐轮拆解循环过程
初始阶段
- 首先执行
var x = 1,此时x的值是1 - 执行for循环的初始化:
var i = 0,此时i的值是0(这一步只做一次)
第一轮循环
- 条件判断:
i < 3→ 0 < 3,结果是true,进入循环体 - 执行循环体代码:
x += 5 * i,也就是x = x + (5 * i)- 代入当前值:x = 1 + (5 * 0) = 1 + 0 = 1
- 执行更新表达式:
i++,i的值变成1
第二轮循环
- 条件判断:
i < 3→ 1 < 3,结果是true,进入循环体 - 执行循环体代码:
x += 5 * i- 代入当前值:x = 1 + (5 * 1) = 1 + 5 = 6
- 执行更新表达式:
i++,i的值变成2
第三轮循环
- 条件判断:
i < 3→ 2 < 3,结果是true,进入循环体 - 执行循环体代码:
x += 5 * i- 代入当前值:x = 6 + (5 * 2) = 6 + 10 = 16
- 执行更新表达式:
i++,i的值变成3
循环结束
现在条件判断:i < 3 → 3 < 3,结果是false,循环直接终止。此时x的值就是16,这就是最终输出的结果啦~
内容的提问来源于stack exchange,提问作者batman091716
相关产品推荐
相关产品推荐

