为了账号安全,请及时绑定邮箱和手机立即绑定

关于for循环for(var i=0;i<3;i++)的疑问

我看很多人的答案是:for(var i=0;i<3;i++)

我觉得如果for(var i=0;i<3;i++),当i=2的时候就已经有数组[0],[1],[2],数组长度已经是3了,但是这个时候i=2还是满足条件i<3的,也就是还是会进入i++,也就是会得到i=3,这个时候才不会满足条件i<3,但是就会有数组[0],[1],[2],[3],数组长度就是4了。

不知道我这样理解对不对,我觉得应该是i<2,j<5才能满足任务要求。到4-5再详细理解吧。



正在回答

6 回答

i++是执行完for循环后,在下一次进入for循环判定前才自增1,你说的那种情况是++i,++在i前面是先执行自增,再去进行运算,i在++前面是先进行运算,再去自增,不知道说清楚没

0 回复 有任何疑惑可以回复我~
#1

一团丶黑

i++; 和 ++i;在这里是一样的,因为用;之后这就是单独一个语句,并不参与运算 他的问题是没有搞清楚for语句的流程,当执行完循环体后应该执行的 i++ ,然后进行判断,如果不满足条件的话直接就会终止循环,所以不会出现[4]这个数组
2017-11-13 回复 有任何疑惑可以回复我~
#2

和茹 回复 一团丶黑

万分感谢 = v =!
2017-11-13 回复 有任何疑惑可以回复我~

不满足条件就不会执行循环体里面的内容

0 回复 有任何疑惑可以回复我~

你可以用for(var i=0;i<2;i++)先建一个一维数组,然后取myarr[2]看看是什么值

0 回复 有任何疑惑可以回复我~

你理解错了,这个i<3的意思不是你从0开始数,判断数字是不是小于3而是这个数组的长度是不是小于3,当你数到2的时候,长度已经等于3了,不满足小于3 的条件,所以i++就停止了

0 回复 有任何疑惑可以回复我~

那照你理解i=0时岂不是也得++ . 那你的数组就变成[1],[2],[3]了?


0 回复 有任何疑惑可以回复我~

当得到i=3的时候不满足条件,就不会执行for里的语句,所以不会产生数组[3]。for语句是通过条件来判断,若不符合条件就不会进入for的执行语句里,直接跳出循环。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于for循环for(var i=0;i<3;i++)的疑问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信