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

来源:4-5 重复重复(for循环)

LY_1124

2016-04-07 16:18

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

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

写回答 关注

5回答

  • LY_1124
    2016-04-07 17:31:20

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

  • 青空之雪
    2016-04-07 17:01:59

    http://img.mukewang.com/570621ad000152ae06500199.jpg

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

    LY_112...

    不是这问题,++在前或在后的区别我知道。我是想知道写在for更新条件里与写在输出里,为什么不同

    2016-04-07 17:06:58

    共 1 条回复 >

  • qq_haveonce_0
    2016-04-07 16:40:30

    http://img.mukewang.com/57061cb600015ded02940205.jpg

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

  • 慕粉3150175
    2016-04-07 16:31:57

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

    LY_112...

    j从1到9是对的,是我想要的结果。我就是想知道为什么++j写在小括号里就是0~8了,没有直接0+1再到9呢?

    2016-04-07 16:42:45

    共 1 条回复 >

  • happygl16
    2016-04-07 16:30:23

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

    LY_112...

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

    2016-04-07 16:34:25

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题