Heim > Fragen und Antworten > Hauptteil
var h=5;
for(var i=1;i<=h-1;i++){
for(var j=h-1;j>=i;j--){
document.write(" ");
}
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
巴扎黑2017-05-18 10:51:45
一开始进入外层for,然后内层第一个for,然后内层第二个for,然后第一轮循环结束。
第一轮输出:
    *<br>
第二轮输出:
   ***<br>
第三轮输出:
  *****<br>
第四轮输出:
 *******<br>
迷茫2017-05-18 10:51:45
for () { // i=1
for() {
// j=4,i=1,write(" ");j=3,i=1,write(" ");
// j=2,i=1,write(" ");j=1,i=1,write(" ");
}
for () { //n=1,i=1,n<=1就执行
// n=1,write("<br>");
}
}
外层第一次循环:四个空格一次换行
for () { // i=2
for() {
// j=4,i=2,write(" ");j=3,i=2,write(" ");
// j=2,i=2,write(" ");
}
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(" ");j=3,i=3,write(" ");
}
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个,输出换行符递增两个,像这种比较乱的循环,可以尝试枚举两到三个执行流程