JS循环嵌套的执行原理

【逆战班】

循环嵌套是指在一个循环语句中再定义一个循环语句的语法结构,外循环执行一次,内循环全部执行完,直到外循环执行完毕,整个循环结束。

while、do.. while和for循环语句都可以进行嵌套,并且他们之间可以进行互相嵌套。最常见的是在for循环中嵌套for循环。格式如下:

for (循环变量初始值; 循环条件; 步长)

{

循环体

.......

for (循环变量初始值; 循环条件; 步长)

{

循环体

........

}

}

例子一:

利用循环嵌套输出一个金字塔形状的三角形:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

    <script>

        for (var j = 1; j <= 5; j++) {//外层循环表示有多少行

            for(var k=1;k<=5-j;k++){//内层循环体一:控制每一层开始输出及格空格符

                    document.write(‘&nbsp;‘);

                }

            for (var i = 1; i <= j; i++) {//内层循环体二:控制输出 * 的个数

                document.write(‘* ‘);

            }

            document.write(‘<br>‘);//每打印一行进行换行操作

        }

    </script>

</body>

</html>

运行结果如下:

在其中定义了两层 for 循环,分别为外层循环和内层循环,外层循环用于控制输出的行数。内层循环体一用于控制每一行开始输出空格的个数,内层循环体二用于控制每一行输出“* ”的个数,最后输出一个三角形。具体执行步骤如下:

第一步:执行外层循环,定义变量j并赋值为1,j<=5结果为true,进入外层循环。

第二步:执行内层循环体一,定义变量k并赋值为1,此时j的值为1,k<=5-1结果为true ,进入内存循环体一。

第三部:执行内存循环体一的语句,输出一个空格符。

第四部:执行内层循环体一的步长k++;此时k=2。

第五步:继续执行内层循环体一,执行顺序同第二、三、四步一样,直到k=5内层循环体一执行完毕,第一行输出四个空格符。

第六步:执行内层循环体二,定义变量i并赋值为1,i<=1结果为true,进入内层循环体二。

第七部:执行内层循环体二的语句,输出一个“* ”。

第八部:执行内层循环体一的步长i++;此时i=2。

第九步:继续执行内层循环体二,i<=1结果为false,结束内层循环体二。

第十步:执行外层循环语句,换行。

第十一步:执行外层循环的步长j++;此时j=2。

第十二步:继续执行外层循环,职业顺序同第一到第十一步。直到j=6整体循环完毕,输出一个三角形。

例子二;

百鸡百钱 : 有一百钱 要买一百鸡,公鸡5钱1只,母鸡3钱1只,仔鸡3只1钱 ,一百钱买一百鸡,每种鸡都要有

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

    <script>

        for(var x=1;x<=98;x++){//外层循环控制公鸡数量

            for(y=1;y<=98;y++){//中间循环控制母鸡数量

                for(z=1;z<=98;z++){//内层循环控制仔鸡数量

                    if(x*5+y*3+z*1/3==100&&x+y+z==100){//在if语句中写出条件表达式

                        console.log(`公鸡有${x}只,母鸡有${y}只,仔鸡有${z}只`);//在控制台输出结果

                    }

                }

            }

        }

    </script>

</body>

</html>

运行结果如下:

在其中定义了三层循环结构,外层循环控制公鸡数量,中间循环控制母鸡数量,内层循环控制仔鸡数量。具体执行步骤如下:

第一步:执行外层循环,定义变量x并赋值为1,x<=98结果为true,进入外层循环。

第二步:执行中间循环,定义变量y并赋值为1,y<=98结果为true,进入中间循环。

第三部:执行内层循环,定义变量z并赋值为1,z<=98结果为true,进入内层循环。

第四步:执行if 语句,进行条件判断,结果为false,结束if 语句。

第五步:执行内层循环的步长z++;此时z=2。

第六步:继续执行内层循环,直到z=99,结束内层循环。

第七步;执行中间循环的步长y++,此时y=2。

第八步:执行中间循环,y<=98结果为true。进入中间循环。

第九步:执行内层循环,步骤同第三至第六步。

第十步:执行中间循环,直到y=99,结束中间循环。

第十一步:执行外层循环的步长x++,此时x=2。

第十二步:直到x=99整体循环结束。

原文地址:https://www.cnblogs.com/icy-shower/p/12496939.html

时间: 2024-10-26 00:38:36

JS循环嵌套的执行原理的相关文章

js解析器的执行原理

首先看一段代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <span>我是span</span> <script type="text/javascript"> alert(cnt); var cnt=60;

问题记载——keil中写for循环嵌套

还是上次的工程,LED灯闪烁.我今天回想一下感觉上次调试的时候还是有点问题,LED0 1和0的翻转时间很奇怪. 所以今天又打开看了看,单步调试,发现for循环嵌套只执行前一个循环,后一个循环根本不执行. //不行 void Delay(unsigned int t) { unsigned int i,j; for(i=0;i<t;i++){ for(j=0;j<t;j++){} } } //不行 void Delay(unsigned int t) { unsigned int i,j; fo

自学Python入门 (for和while)循环嵌套及用法

Python 程序中,如果把一个循环放在另一个循环体内,那么就可以形成循环嵌套.循环嵌套既可以是 for 循环嵌套 while 循环,也可以是 while 循环嵌套 for 循环,即各种类型的循环都可以作为外层循环,各种类型的循环也都可以作为内层循环. 当程序遇到循环嵌套时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行(只是内层循环需要反复执行自己的循环体而己).只有当内层循环执行结束且外层循环的循环体也执行结束时,才会通过判断外层循环的循环条件,

JS中的循环结构、循环嵌套以及函数介绍

[循环结构的步骤]    *①声明循环变量    *②判断循环条件    *③执行循环体(while的{}中的所有代码)操作     *④更新循环变量    *     * 然后,循环执行②③④    *     *     * [JS中循环条件支持的数据类型]    * ①boolean:true 真     false   假    * ②string: 非空字符串为真       空字符串为假    * ③null/NaN/undefined:  全为假    * ④object:全为真 

【JS中循环嵌套六大经典例题+六大图形题,你知道哪几个?】

首先,了解一下循环嵌套的特点:外层循环转一次,内层循环转一圈. 在上一篇随笔中详细介绍了JS中的分支结构和循环结构,我们来简单的回顾一下For循环结构: 1.for循环有三个表达式,分别为: ①定义循环变量 ② 判断循环条件 ③更新循环变量(三个表达式之间,用;分隔.) for循环三个表达式可以省略,两个;缺一不可2.for循环特点:先判断,再执行:3.for循环三个表达式,均可以有多部分组成,之间用逗号分隔,但是第二部分判断条件需要用&&链接,最终结果需要为真/假. [嵌套循环特点]外层

通过一个简单闭包,弄懂JS执行原理

<script> function f1()            {                var age = 18; function f2()                {                    alert('我今年:'+age+'岁');                } return f2;            }                var func3 = f1(); func3();</script>            闭包

更快的理解js中循环嵌套

[循环控制语句] break语句:终止本层循环,继续执行循环后面的语句:(当循环有多层时,break只会跳出一层循环) continue语句:跳过本次循环,继续执行下次循环: (对于for循环,continue执行后,继续执行循环变量更新语句n++: 对于while, do while,continue执行后,继续执行循环条件,所以使用这两个循环,必须注意,continue一定要在n++之后): [嵌套循环题的特点] 外层循环控制行数,内层循环控制每行元素的个数: [做图形的思路步骤] 1.确定

js中循环嵌套

[循环控制语句] break语句:终止本层循环,继续执行循环后面的语句:(当循环有多层时,break只会跳出一层循环) continue语句:跳过本次循环,继续执行下次循环: (对于for循环,continue执行后,继续执行循环变量更新语句n++: 对于while, do while,continue执行后,继续执行循环条件,所以使用这两个循环,必须注意,continue一定要在n++之后): [嵌套循环题的特点] 外层循环控制行数,内层循环控制每行元素的个数: [做图形的思路步骤] 1.确定

JS循环

JS循环基础知识 [循环结构的执行步骤] 1,声明循环变量: 2,判断循环条件: 3,执行循环体操作: 4,更新循环变量: 然后,循环执行2-4,直到条件不成立时,跳出循环: while循环()中的表达式,运算结果可以是各种类型.但是最终都会转化为真假,转换规则同if结构: ①boolean:true为真,flase为假: ②string:空字符串为假,所有非空字符串为真: ③number:0为假,一切非0数字为真: ④null,undefined,NaN全为假: ⑤object:全为真: wh