For Loop即将推出

时间:2014-09-17 04:55:07

标签: javascript for-loop

我正在制作一个乘法表,它从用户那里获取输入并构建一个n×n表。但是,对于我拥有的脚本,它总是显示比预期更少的行和列。我在这里缺少什么?

JS:

function happy(rows, cols){
        var hcode = '';
        w=window.open();
        //w.document.write("here are " + rows + cols)
        w.document.write("<table border='1'><tr> </td>");
        for (j=1; j<cols; j++){
            w.document.write("<tr>");
            w.document.write("<td bgcolor='plum'>"+ j +"</td>");    
            //w.document.write("<tr>");

            for (i=2; i<rows; i++){
                    w.document.write("<td>" + j*i + "</td>");
            }
            w.document.write("</tr>")
        }
        w.document.write("</table>");       
}

4 个答案:

答案 0 :(得分:3)

如果您对结果感到惊讶,则会出现一个错误的错误。如果你对结果并不感到惊讶,那就是设计。

你可以在纸上自己尝试一下。

假设你想数到3,你从1开始。

  • 所以第一个数字是1,递增1
  • 检查数字是否小于3,是的,第二个数字是2,增加1
  • 检查数字是否小于3,不是不是(3不小于3)

没有第三个号码。因为您已使用支票number<3停止了循环。

要解决此问题,请检查数字是否小于或等于3:

for (j=1; j<=cols; j++){ ...

答案 1 :(得分:1)

javascript中的数组从0开始,你的循环也应该从0开始

答案 2 :(得分:1)

使用j&lt; = cols。当您使用值j进行乘法时,j = 0将得到结果为0。

答案 3 :(得分:1)

for (j = 1; j <= cols; j++)for (i = 2; i <= rows; i++)

由于您的情况i < cols,您的循环会提早结束。 :)