任何人都可以解释内部循环如何工作?

时间:2012-12-10 06:09:31

标签: javascript for-loop

for (var i = 1; i <= 9; i++ ) {   //this is the outer loop

  document.write("<tr>");
  document.write("<td>" + i + "</td>");

  for ( var j = 2; j <= 9; j++ ) { // This is the inner loop
        document.write("<td>" + i * j + "</td>");
  }

  document.write("</tr>");
}

document.write("</table>");

任何人都可以解释像这样的内部for循环是如何工作的吗?

1 个答案:

答案 0 :(得分:1)

首次进入外循环时,i = 1,并创建一行<tr>以及第一个数据<td>

当进入内部循环时,它将j从2迭代到9,填充更多数据<td>,并将迭代索引ij相乘并输出结果。

当退出内循环时,它结束在内循环之前启动的行</tr>

现在 - 再次重复上述三个步骤,包括内循环,i从2,一直到9。

结果,你得到一个9x9的乘法表。


考虑以下曲目。黑线是外环,红线是内环。每次看到它时,都会在轨道上打印文本,并将ij替换为相应的变量。

http://i.minus.com/ibzsxcxCnucqpP.png

在这个程序中,您必须运行黑色循环9次,并记住当您通过起始行时,将i增加1. i从1开始,然后再进入此跟踪。

并且,当你每次到达红色循环时,进入循环并经历该循环8次,将j增加1,从2开始,然后每次在通过黑色循环后再次到达红色循环时,将j重置为2.

结果,你将运行红色循环9 x 9 = 81次,每次进入红色循环时,你计算i*j并输出它。

捕获量是:

  • 当你进行红色循环时,黑色循环计数器i永远不会改变,直到你退出红色循环。
  • 在通过黑色循环后进入红色循环时,j将重置为2.(for循环语句中的j = 2部分)

最后但同样重要的是,这个代码可能是生成乘法表的一种更优雅的方式。

for (var i = 1; i <= 9; i++ ) {   //this is the outer loop

   document.write("<tr>");

   for ( var j = 1; j <= 9; j++ ) { // This is the inner loop
        document.write("<td>" + i * j + "</td>");
   }

   document.write("</tr>");
 }