首页 » 技术分享 » JS05-循环的嵌套demo

JS05-循环的嵌套demo

 

循环的嵌套

所谓的循环嵌套,就是 for(){} 的循环体,也包含 for循环

   for(){
        for(){}
    }
for (var j = 1; j <= 5; j++) {
    for (var i = 1; i <= 5; i++) {
        console.log(`i是${i} , j是${j}`);
    }
    console.log('')
}

执行程序,先执行外层 j 的循环
①当 j 第一次循环时 j 是 1
此时要执行 j 的循环体 —
也就是 i 的循环
i的for循环是从1-5来执行循环,然后输出内容
i 的数值 是从1循环至5,j的数值始终是 1
当 i 1-5 循环结束了 执行 console.log(’’)
此时 j 的 第一次循环体完全执行完毕
执行 j 循环的步长 j++
② j 第二次循环 j 是 2
重新执行 循环体 i 从 1-5 循环 j 始终是 2
i循环结束,执行console.log() 循环体执行结束
j 的循环体执行结束, 执行 j 的步长 j++

特别注意:
1, 当 外层循环体 执行一次循环时 , 内层循环体 执行所有的循环
2, 当 内层循环执行时,外层循环数值是保持不变的
3, 内层循环体的循环变量,往往与外层循环变量相关联
也就是 i 往往与 j 有关系

相当于时钟的效果
当前 是 12:00:00
之后 秒针要 从 1-60 循环
此时 分钟是保持不变的
12:00:01 12:00:02 12:00:03 12:00:04…

demo1.

输出一个由 * 星号组成的三角形

*
* *
* * *
* * * * 
* * * * *

分析 :
每行 : 输出 星号, 星号之后有空格 , 结束有换行
重复执行 : 将每行内容重复执行

//笨蛋方法:
    for(var i = 1 ; i <= 1 ; i++){
        // 循环5次,每次输出一个星星和一个空格
        document.write('*&nbsp;');
    }
    // 当前行的星星和空格输出之后,再输出一个换行
    document.write('<br>');

    for(var i = 1 ; i <= 2 ; i++){
        // 循环5次,每次输出一个星星和一个空格
        document.write('*&nbsp;');
    }
    // 当前行的星星和空格输出之后,再输出一个换行
    document.write('<br>');

    for(var i = 1 ; i <= 3 ; i++){
        // 循环5次,每次输出一个星星和一个空格
        document.write('*&nbsp;');
    }
    // 当前行的星星和空格输出之后,再输出一个换行
    document.write('<br>');

    for(var i = 1 ; i <= 4 ; i++){
        // 循环5次,每次输出一个星星和一个空格
        document.write('*&nbsp;');
    }
    // 当前行的星星和空格输出之后,再输出一个换行
    document.write('<br>');

    for(var i = 1 ; i <= 5 ; i++){
        // 循环5次,每次输出一个星星和一个空格
        document.write('*&nbsp;');
    }
    // 当前行的星星和空格输出之后,再输出一个换行
    document.write('<br>');
//便捷思路:
定义一个变量,是随机的总函数 5-15var line = parseInt(Math.random()*( 15+1-5 ) + 5);

一行内容,循环的次数,也就是行数
j 是 从 15 的循环 表行数
    for (var j = 1; j <= line; j++) {
        // 一行内容 , 星星 空格 一行结束 有换行
        
        // j 是从1至5 变化的
        // 当第一次 j 循环 j 是 1, i 就是 <= 1 , i 循环 执行 1 次
        // 当第二次 j 循环 j 是 2, i 就是 <= 2 , i 循环 执行 2 次
        // 当第五次 j 循环 j 是 5, i 就是 <= 5 , i 循环 执行 5 次
        // 总结 : i 的循环次数 与 j 的数值 是相关联的
        for (var i = 1; i <= j; i++) {
            document.write('* ');
        }
        document.write('<br>');
    }

总结步骤
1,先定义最多一行输出内容的程序 – 内层循环
2,再定义变量,生成行数 – 外层循环
3,判断行数,与当前行,循环次数的关系

demo2. 99乘法表

外层循环,生成的是9行的行数
也就是将一行内容,循环执行9次

for (var j = 1; j <= 9; j++) {
    // 一行的内容,循环输出,乘法公式
    // 乘法公式的第一个数值是内层循环变量,第二个数值是外层循环变量
    for (var i = 1; i <= j; i++) {
        document.write(`${i}*${j}=${i * j} `);
    }
    // 每行结束之后,有一个换行
    document.write('<br>');
}

总结
1,先写内容最多的一行 — 内层循环
2,定义行数 — 外层循环
3,将两个循环套一起
4,将内层循环中,所有与外层循环变量相关的数值,做替换

转载自原文链接, 如需删除请联系管理员。

原文链接:JS05-循环的嵌套demo,转载请注明来源!

0