Javascript 因为循环出现短路

Javascript 因为循环出现短路,javascript,for-loop,Javascript,For Loop,我正在制作一个乘法表,它接受用户的输入并构建一个n乘n的表。然而,对于我的脚本,它总是比预期的少显示一行和一列。我错过了什么 JS: 函数(行、列){ var hcode=''; w=window.open(); //w、 document.write(“这里是”+行+列) w、 文件。填写(“”); 对于(j=1;jjavascript中的数组从0开始,你的循环也应该从0开始javascript中的数组从0开始,你的循环也应该从0开始使用j使用j如果你对结果感到惊讶,你会有一个off by一个

我正在制作一个乘法表,它接受用户的输入并构建一个n乘n的表。然而,对于我的脚本,它总是比预期的少显示一行和一列。我错过了什么

JS:

函数(行、列){
var hcode='';
w=window.open();
//w、 document.write(“这里是”+行+列)
w、 文件。填写(“”);

对于(j=1;jjavascript中的数组从
0
开始,你的循环也应该从
0
开始javascript中的数组从
0
开始,你的循环也应该从
0

开始使用j使用j如果你对结果感到惊讶,你会有一个off by一个错误。如果你对结果不感到惊讶,那么它就是d设计

你可以在纸上自己试试

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

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

没有第三个数字。因为你已经用check
number停止了循环,如果你对结果感到惊讶,你就会出现一个off-by-one错误。如果你对结果不感到惊讶,那么这是出于设计

你可以在纸上自己试试

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

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

没有第三个数字。因为您已通过检查(j=1;j
for)停止循环(j=1;j他没有使用任何数组。只是递增
j
i
。你几乎是对的,这是一个一个错误,但不是因为你回答中的原因。他没有使用任何数组。只是递增
j
i
。你几乎是对的,这是一个一个错误,但不是因为你回答中的原因。你不应该吗你用行作为外循环,用cols作为内循环?你不应该用行作为外循环,用cols作为内循环吗?计算界有句名言——计算机科学中有两个已知的难题:缓存失效、命名和按一个错误关闭。我不相信我错过了这一点。谢谢你的帮助实现和解决方案!计算界有句名言——计算机科学中有两个已知的难题:缓存失效、命名和按一个错误关闭。我不相信我错过了这一点。感谢您提供的有用的可视化和解决方案!
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>");       
}
for (j=1; j<=cols; j++){ ...