循环嵌套
就是再循环里面再次写一个循环
注意: 里外层循环变量不要一样
for (var i = 1; i <= 5; i++) {
for (var j = 1; j <= 7; j++) {
// 里层循环, 会随着外层循环一遍一遍的执行
// 当 i === 0 的时候, 会完整执行一遍里层循环 j === 0 1 2
// 当 i === 1 的时候, 会完整执行一遍里层循环 j === 0 1 2
// 当 i === 2 的时候, 会完整执行一遍里层循环 j === 0 1 2
// 我们的里层循环一共执行了 9 遍
console.log(i + ’ — ’ + j)
}
}
if 和 switch 叫做条件判断
for 和 while 和 do … while 叫做循环
九九乘法表
行 列
1 ---- 1
2 ---- 2
3 ---- 3
4 ---- 4
如果使用循环嵌套
外层跑一圈的时候, 里层也跑一圈
外层跑两圈的时候, 里层也跑两圈
外层跑多少圈, 里层就跑多少圈
外层循环
for (var i = 1; i <= 9; i++) {
// 当 i === 1 的时候, 表示第一行, 里层循环循环 1 次
// 当 i === 2 的时候, 表示第二行, 里层循环循环 2 次
// 当 i === 9 的时候, 表示第九行, 里层循环循环 9 次
// i 是几里层循环就循环多少次
// 里层循环表示多少列
for (var j = 1; j <= i; j++) {
// 直接输出再页面上
document.write(j + ’ * ’ + i + ’ = ’ + i * j + ’ ‘)
}
// 每一行的最后面要输出一个换行
document.write(’’)
}
杨辉三角形
就是为了练习循环嵌套, 再页面上打印一个由 * 组成的三角形
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
需要一个循环嵌套
第一行是一个, 第二行是两个
第几行就是几个
// for (var i = 1; i <= 9; i++) {
// // 里层循环循环多少次由外层循环决定
// for (var j = 1; j <= i; j++) {
// document.write('* ')
// }
// document.write('</br>')
// }
我想让这个三角形倒过来
* * *
* *
*
第 1 行是 9 个
第 2 行是 8 个
第 3 行是 7 个
当你书写循环的时候
for (var j = 1; j <= 9; j++) {} 就是一共 9 次
for (var j = 1; j <= 8; j++) {} 就是一共 8 次
1 2 3 4 5 6 7 8
for (var j = 2; j <= 9; j++) {} 就是一共 8 次
2 3 4 5 6 7 8 9
for (var j = 1; j <= 7; j++) {} 就是一共 7 次
1 2 3 4 5 6 7
for (var j = 3; j <= 9; j++) {} 就是一共 7 次
3 4 5 6 7 8 9
// 外层循环决定是第几行
// for (var i = 1; i <= 9; i++) {
// // 当 i === 1 的时候, 表示第 1 行, 里层循环要循环 9 次
// // 当 i === 2 的时候, 表示第 2 行, 里层循环要循环 8 次
// // 当 i === 9 的时候, 表示第 9 行, 里层循环要循环 1 次
// // 当 i 是几的时候, 里层循环就要循环多少次
// for (var j = i; j <= 9; j++) {
// // 当 i === 1 的时候, 里层循环时 1 ~ 9, 是 9 次
// // 当 i === 2 的时候, 里层循环是 2 ~ 9, 是 8 次
// document.write('* ')
// }
// // 每一行输出完毕, 再最后加上一个换行
// document.write(’’)
// }
换成右上直角三角形
*********
********
*******
******
*****
****
***
**
*
分析三角形
第 1 行, 1 个空格, 9 个星号, 带一个换行
第 2 行, 2 个空格, 8 个星号, 带一个换行
第 3 行, 3 个空格, 7 个星号, 带一个换行
第 9 行, 9 个空格, 1 个星号, 带一个换行
// 外层循环, 表示第几行
for (var i = 1; i <= 9; i++) {
// 先输出对应的空格
// i 是几 就输出几个 空格
for (var j = 1; j <=