首页  >  问答  >  正文

javascript - for循环嵌套两个for循环

        var h=5;
        for(var i=1;i<=h-1;i++){
            for(var j=h-1;j>=i;j--){
                document.write("&nbsp");
            }
            for(var n=1;n<=2*i-1;n++){
                document.write("*");
            }
            document.write("<br>");
        }

请问这段代码是怎么运行的呢? 看得懂这段代码 但是被它的运行搞乱了 越想越不明白它的运行方式 菜鸟求高手详细的指教一下 万分感谢 感谢 感谢

我想大声告诉你我想大声告诉你2711 天前573

全部回复(4)我来回复

  • 巴扎黑

    巴扎黑2017-05-18 10:51:45

    一开始进入外层for,然后内层第一个for,然后内层第二个for,然后第一轮循环结束。
    第一轮输出:
        *<br>
    第二轮输出:
       ***<br>
    第三轮输出:
      *****<br>
    第四轮输出:
     *******<br>

    回复
    0
  • 迷茫

    迷茫2017-05-18 10:51:45

    for () {    // i=1
        for() {
            // j=4,i=1,write("&nbsp");j=3,i=1,write("&nbsp");
            // j=2,i=1,write("&nbsp");j=1,i=1,write("&nbsp");
        }
        for () {    //n=1,i=1,n<=1就执行
            // n=1,write("<br>");
        }
    }

    外层第一次循环:四个空格一次换行

    for () {    // i=2
        for() {
            // j=4,i=2,write("&nbsp");j=3,i=2,write("&nbsp");
            // j=2,i=2,write("&nbsp");
        }
        for () {    //n=1,i=2,n<=3就执行
            // n=1,write("<br>");n=2,write("<br>");n=3,write("<br>");
        }
    }

    外层第二次循环:三个空格,三个换行

    for () {    // i=3, i<=4就执行
        for() {
            // j=4,i=3,write("&nbsp");j=3,i=3,write("&nbsp");
        }
        for () {    //n=1,i=3,n<=5就执行
            // n=1,write("<br>");n=2,write("<br>");n=3,write("<br>");
            // n=4,write("<br>");n=5,write("<br>");
        }
    }

    外层第三次循环:两个空格,五个换行
    ....

    也就说输出空格符递减1个,输出换行符递增两个,像这种比较乱的循环,可以尝试枚举两到三个执行流程

    回复
    0
  • PHP中文网

    PHP中文网2017-05-18 10:51:45

    按顺序执行,进入外层循环,里面的循环循环了再执行下面的循环

    回复
    0
  • 阿神

    阿神2017-05-18 10:51:45

    可以看看for语句的基本语法,静下心来慢慢想,外部循环决定了换行数,里面两个循环分别决定空格数和*符号数。
    里面的循环各自独立,几乎同时进行

    回复
    0
  • 取消回复