JS循环嵌套的执行原理

摘要:
循环嵌套是指在一个循环语句中再定义一个循环语句的语法结构,外循环执行一次,内循环全部执行完,直到外循环执行完毕,整个循环结束。while、do..while和for循环语句都可以进行嵌套,并且他们之间可以进行互相嵌套。最常见的是在for循环中嵌套for循环。第五步:继续执行内层循环体一,执行顺序同第二、三、四步一样,直到k=5内层循环体一执行完毕,第一行输出四个空格符。第十一步:执行外层循环的步长j++;此时j=2。

【逆战班】

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

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>

运行结果如下:

JS循环嵌套的执行原理第1张

在其中定义了两层 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>

运行结果如下:

JS循环嵌套的执行原理第2张

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

第一步:执行外层循环,定义变量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整体循环结束。

免责声明:文章转载自《JS循环嵌套的执行原理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Windows IIS Web services性能计数器说明如何提升大数据数据质量下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

crontab命令加载和使用

crontab命令用于设置定期执行的指令。在Linux系统中,Linux任务调度的任务主要分为以下两类:1.系统周期性执行的任务,如备份系统数据和清理缓存。2.个人要执行的任务:用户要定期执行的任务,例如每10分钟检查邮件服务器是否有新消息。这些任务可以由每个用户设置,以检查是否首先安装了crontab[root@localhostgjw]#rpm qa|g...

目录扫描工具DirBuster

DirBuster用于检测web服务器上的目录和隐藏文件。因此,必须在运行之前安装Java环境。在TargetURL下输入要检测的网站的地址。请注意,地址应与协议一起添加。一种是自动选择。它将决定是使用head方法还是get方法。number of Thread是所选扫描线程的数量,selectscanning type是所选的扫描类型。Listbasedb...

Systemd简介与使用

Systemd在并行启动中采用了比Upstart更激进的方案。图2显示了systemd的并行启动模式。它允许所有配置的服务同时启动。事实上,大多数使用systemd的现代发行版都与此类似。系统通过配置这些单元来切换和管理服务。...

「雕爷学编程」Arduino动手做(26)——4X4矩阵键盘模块

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。108种传感器模块系列实验实验二十六:4X4矩阵键盘模块矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。工作原理矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。矩阵键盘所需库文件在ArduinoIDE1.8.0...

ArcGIS Server服务状态正在停止。。。问题BUG解决

1、 ArcGISServer服务器存在服务问题:ArcGISServerManager的所有服务都显示为“正在停止…”。N个解决方案1)港口占用问题。端口4000-4002已被其他程序占用,导致服务无法正常启动。您可以通过CMD找到相关PID占用的端口,停止它,然后启动GIS服务。您也可以在安装目录中将其手动更改为D:ProgramFiles ArcGIS...

Json对象转Ts类

其次,Json是一种轻量级的数据交换格式。在前端和后端之间的数据交互过程中,后端接口返回Json格式的数据,前端需要使用相应的Ts类对象来接收它。此时,如果后端提供样本数据或现有接口返回的Json格式数据,是否有方法帮助我们从Json格式数据生成Ts类?介绍了三个主要功能。1.查看Json对应的Ts类,将要格式化的Json字符串复制粘贴到中间编辑区域。单击右...