首先看这样一段代码。
运行后在页面显示是这样的。
但是我想一次性+2
,而i++
只能累加1,于是我改成了这样。
var count=0;
var count1=1;
for(var i=1;i<=99;i+2){
count+=i;
}
document.write("1~99中的奇数的和是"+count);
但是浏览器的状态一直刷新,没有内容。
很明显,这是死循环了,但是不应该啊,难道是i+2
的问题?
于是搜索过后,恍然大悟。
因为i++,是有自加功能的,它的含义是i=i+1的缩写,它有两层含义,一是i+1,二是把得到的值再复赋值给i。
而单纯一个i+1没有赋值功能,加完以后,i的值还是原值,加上1,毫无意义。
一般的c语言程序,碰到你写的i+1或者是sum+1这样的式子,代码都会正常运行而不会报错,只是达不到预期的目的而已。
总之,不管出不出现错误提示,你写成i+1或者是sum+1毫无用处,也不会起到任何作用,它不能代替i++,或者sum++。
i++
不是单纯+1
,他存在了一个过程,i = i + 1
,而这样就不是直接赋值。
至于为什么i + 2
不行,因为他是一步到位,循环中这样i
的值是没有任何变化的!
+2确实是+了,只是值还没到位,循环就开始,值没变化,始终为原始值,于是死循环。
标签:只能,++,sum,循环,var,死循环,这样,赋值 来源: https://www.cnblogs.com/JanYork/p/16292911.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。