Javascript – For-Schleife verschachtelt zwei For-Schleifen – Stapelüberlauf
我想大声告诉你
我想大声告诉你 2017-05-18 10:49:45
0
4
612
        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>");
        }

Wie läuft dieser Code ab? Ich kann diesen Code verstehen, aber je mehr ich darüber nachdenke, desto weniger verstehe ich, wie er funktioniert. Bitte geben Sie mir detaillierte Ratschläge. Vielen Dank . Danke

我想大声告诉你
我想大声告诉你

Antworte allen(4)
巴扎黑

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

迷茫
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个,输出换行符递增两个,像这种比较乱的循环,可以尝试枚举两到三个执行流程

Ty80

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

阿神

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage