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

关于两个变量的for循环问题

for(var i = 9,j = 0; i > 0; i--) {
        document.write('张三有'+ i +'元钱,给了李四1元,李四有'+ ++j +'元<br/>');
    }

请问为什么把j的更新条件值放在小括号里数值是从0开始的?不管是++j还是j++都是0~8,而不是1~9

正在回答

5 回答

搞清楚了。写在小括号里是从初始值0开始到8,写在输出里是已经循环过一次了的,所以是1~9。是先后顺序问题。

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

http://img1.sycdn.imooc.com//570621ad000152ae06500199.jpg

找到个相似的案例,来源于知乎:“在循环语句中,for(i=0;i<n;i++)和for(i=0;i<n;++i)有什么区别?”

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

LY_1124 提问者

不是这问题,++在前或在后的区别我知道。我是想知道写在for更新条件里与写在输出里,为什么不同
2016-04-07 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//57061cb600015ded02940205.jpg

这是我运行的图片,和你想要的结果一样吧 ,就是你的程序啊   

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

var i=9,j=0;是初始化,只运行一次。在这个for循环中从i=9到i=1运行了9次,但是当i=0时,不满足循环条件,就跳出循环,所以i是从9到1,++j是先加再使用,j是从1到9

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

LY_1124 提问者

j从1到9是对的,是我想要的结果。我就是想知道为什么++j写在小括号里就是0~8了,没有直接0+1再到9呢?
2016-04-07 回复 有任何疑惑可以回复我~

因为计算机是从零位开始的 ,你看java基础里就有

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

LY_1124 提问者

按我的理解,写成for(var i = 9,j = 0; i>0; i--,++j或者j++ ) {.....},再得j的值,j不是应该已经+1了么,但我实际试了并没有,我就是想知道为什么。
2016-04-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于两个变量的for循环问题

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