九九乘法表

九九乘法表

首先,把表格的样式整一下,均分表格,合并单元格边框。

table {
    width: 900px;
    table-layout: fixed;
    border-collapse: collapse;
}

td:not(:empty) { /*这个选择器的意思是要把内容为空的单元格去掉,选中的单元格都是有的内容的*/
    padding: 10px;
    border: 1px solid #999;
}

1. 两种简易版

第一种:
在这里插入图片描述
思路:既然是在页面打印,就要打好表格框架,九行九列,最外面是table主体标签,九行用for循环循环九次,那么单元格呢,当然是要嵌套在每一行里,每一行里有几个单元格呢,仔细观察,每行的单元格恰好和行数相同,所以单元格的内循环条件就出来了,代码如下:

document.write('<table>');
for (var i = 1; i <= 9; i++) {
    document.write('<tr>');
    for (var j = 1; j <= i; j++) {
        document.write('<td>' + j + '×' + i + '=' + j * i + '</td>');
    }
    document.write('<tr>');
}
document.write('</table>');

第二种:
在这里插入图片描述
思路:还是先打好表格框架,九行九列,行数不变,但是,仔细思考,外层行数循环需要做什么改进,是的,没错,每一行和上面那种输出方式刚好相反,那么外层循环的值恰好可以反一反,从1递增到9,变为从9递减到1,合理改变。那么每一行中的单元格数量呢?和外层循环的值一致,也是从9到1,代码如下:

document.write('<table>');
for (var i = 9; i >= 1; i--) {
    document.write('<tr>');
    for (var j = 1; j <= i; j++) {
        document.write('<td>' + j + '×' + i + '=' + j * i + '</td>');
    }
    document.write('<tr>');
}
document.write('</table>');
document.write('<br>');

2. 两种进阶版

第一种:
在这里插入图片描述
思路:为什么会靠右显示?因为是被前面没有内容的单元格挤过去的。所以,这一次,我们需要在大循环内写两个并列循环,一个输出空单元格,一个输出每行九九乘法表内容,代码如下:

document.write('<table>');
for (var i = 1; i < 10; i++) {
    document.write('<tr>');
    for (var j = 1; j <= 9 - i; j++) {
        document.write('<td></td>');
    }
    for (var j = 1; j <= i; j++) {
        document.write('<td>' + j + '×' + i + '=' + j * i + '</td>');
    }
    document.write('<tr>');
}
document.write('</table>');
document.write('<br>');

第二种:
在这里插入图片描述
思路:自己想吧。

document.write('<table>');
for (var i = 9; i >= 1; i--) {
    document.write('<tr>');
    for (var j = 1; j <= 9 - i; j++) {
        document.write('<td></td>');
    }
    for (var j = 1; j <= i; j++) {
        document.write('<td>' + j + '×' + i + '=' + j * i + '</td>');
    }
    document.write('<tr>');
}
document.write('</table>');
document.write('<br>');

总结: 后两种只是在前两种的基础上添加了一个循环,打印空白单元格,把有内容的单元格挤到了右边。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值