You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中for循环用i*2无法实现1-20奇数求和的问题

为什么i*2让代码无响应,换成i+=2就正常了?

咱们先拆解问题核心:你忽略了JavaScript中for循环更新子句的本质要求——它必须是一个能改变循环变量值的操作,否则会直接触发无限循环,浏览器扛不住就会出现“无效果”的卡顿。

你的原代码里,i*2只是做了一次乘法计算,但根本没把计算结果存回i里。也就是说,i从一开始就是2,永远满足i<=20的条件,循环会永远跑下去,浏览器没法执行到输出结果的那一步。

而i+=2是i = i + 2的简写,这是正经的赋值操作:每轮循环结束后,它会把i的值增加2,让i依次变成4、6、8……直到20,等i超过20时循环终止,自然就能正常输出求和结果了。

顺便澄清:不是不能用乘法,而是要正确赋值

你完全可以在循环更新子句里用乘法运算符,但必须把结果赋值给循环变量。比如如果你想让i每次翻倍,得写成i *= 2(等价于i = i * 2),这样i的值才会更新,循环不会卡死。

小补充:你的代码其实在算偶数之和哦

如果你的目标是计算1到20的奇数之和,那初始化的时候应该把i设为1,这样循环变量会从1开始,每次加2,遍历1、3、5……19,得到的才是奇数的总和~

内容的提问来源于stack exchange,提问作者Caleb Hyun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:18:01