我看很多人的答案是: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再详细理解吧。
i++是执行完for循环后,在下一次进入for循环判定前才自增1,你说的那种情况是++i,++在i前面是先执行自增,再去进行运算,i在++前面是先进行运算,再去自增,不知道说清楚没
不满足条件就不会执行循环体里面的内容
你可以用for(var i=0;i<2;i++)先建一个一维数组,然后取myarr[2]看看是什么值
你理解错了,这个i<3的意思不是你从0开始数,判断数字是不是小于3而是这个数组的长度是不是小于3,当你数到2的时候,长度已经等于3了,不满足小于3 的条件,所以i++就停止了
那照你理解i=0时岂不是也得++ . 那你的数组就变成[1],[2],[3]了?
当得到i=3的时候不满足条件,就不会执行for里的语句,所以不会产生数组[3]。for语句是通过条件来判断,若不符合条件就不会进入for的执行语句里,直接跳出循环。