検索

ホームページ  >  に質問  >  本文

javascript - 怎么理解for循环语句中的嵌套。他是怎么遍历的?求解答

怎么理解for循环里面的嵌套呀?搞不懂。一个还好理解。两个嵌套。理解起来有点晕。。。求大神指导。。感谢感谢

迷茫迷茫2819日前1358

全員に返信(16)返信します

  • 阿神

    阿神2017-04-10 15:01:23

    一图胜千言

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 15:01:23

    有chrome打断点调试,一行行看,你就知道这段代码是怎么跑的了。

    返事
    0
  • ringa_lee

    ringa_lee2017-04-10 15:01:23

    他颤抖着推开了门,发现后面居然还有9扇门,门的编号依次是1、2、3、……8、9。
    墙上的提示牌:必须打开9扇门后所有的锁,你才能离开这里。
    他拿起旁边的一把钥匙,
    推开了编号为1的门,里面有1把锁,开锁,关门;
    推开了编号为2的门,里面有2把锁,开锁,关门;
    推开了编号为3的门,里面有3把锁,开锁,关门;
    推开了编号为4的门,里面有4把锁,开锁,关门;
    推开了编号为5的门,里面有5把锁,开锁,关门;
    推开了编号为6的门,里面有6把锁,开锁,关门;
    推开了编号为7的门,里面有7把锁,开锁,关门;
    推开了编号为8的门,里面有8把锁,开锁,关门;
    推开了编号为9的门,里面有9把锁,开锁,关门。

    扯蛋完毕...

    返事
    0
  • 迷茫

    迷茫2017-04-10 15:01:23

    写入调试代码
    for(var i=1; i<=9; i++)
    {
    alert(‘第一层’+i);
    for(var j=1; j<=i; j++)
    {
    alert(‘第二层’+j);
    }
    }
    一目了然

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 15:01:23

    建议重构代码。

    返事
    0
  • 迷茫

    迷茫2017-04-10 15:01:23

    i 的初始值是 1,i <= 9 吗?是的,进入循环
        j 的初始值是 1,j <= i 吗?是的,进入循环
            ……完事,j 自增 1
        j <= i 吗?不是,跳出循环
    
        ……完事,i 自增 1
    i <= 9 吗?是的,进入循环
        j 的初始值是 1,j <= i 吗?是的,进入循环
            ……
    

    我是不是挺无聊的?

    返事
    0
  • PHP中文网

    PHP中文网2017-04-10 15:01:23

    nightire的回答已经很详细了。我再说一点:
    for语句的标准用法是:
    for( 语句1;语句2;语句3)
    {
    //这里写需要执行的代码
    }

    注意:程序遇到for循环时,先执行语句1,然后判断语句2的执行结果是否为真,如果为真,进入循环体执行循环语句,然后执行语句3,然后再判断语句2的执行结果是否为真,直到语句2返回“假”,退出当前的for循环。

    在你给出的代码中,程序执行到第一个for循环时,先执行语句1(初始化i=1),然后判断语句2的返回值是否为“真”,因为i=1,是<=9,所以会进入第一个for循环的循环体,于是遇到了第二个循环体,然后按照我在“注意”里所说的规则执行第二个for循环的代码,直到j==2,此时i还是等于1,所以退出第二层for循环执行第一层for循环,最终i==10,第一层for循环也退出,两层嵌套执行完毕!

    如果你想确认自己已经理解了for循环的嵌套,可以看一下冒泡算法。

    返事
    0
  • 怪我咯

    怪我咯2017-04-10 15:01:23

    直到j==2,此时i还是等于1?为什么呀?

    返事
    0
  • 黄舟

    黄舟2017-04-10 15:01:23

    执行下外边,再执行里边,再执行下外边.....
    周而复始,这个就是还能怎么理解啊.....

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 15:01:23

    @子君,这里可以理解为:
    1个for,打印1条线
    2个for(嵌套),打印1个面(三角形),这里的三角形 sepmein 已经给出。
    3个for(嵌套)....

    返事
    0
  • キャンセル返事