JavaScript流程控制详解之循环结构(倒三角、九九乘法表)

循环结构

在JavaScript中,循环语句指的是在满足某个条件下重复执行 指定的一段代码。若条件结果为true,则重复执行,则进入循环,否则结束循环。

在JavaScript中,循环语句如下:

  • while语句
  • do…while语句
  • for语句

while语句

JavaScript中while语句创建一个循环,只要条件返回结果为true,该循环就会执行循环体

语法:

while (条件表达式) {// 当条件为true时,则执行循环体statements;
}

怎么运行的?

  • 如果条件返回结果为true,则会执行大括号里的循环体statements
  • 当执行完大括号里的循环体statement后,会再次判断条件。如果条件返回结果仍然是true,则会继续执行大括号里的循环体,直到条件返回结果为false,则结束整个循环,然后再执行while语句后面的程序

while循环结构工作原理
在这里插入图片描述

示例:计算1+2+3+…+100的值

<script>var num=1;var sum=0;while(num<=100){sum+=num;++num;}console.log("1+2+3...+100="+sum);
</script>

运行结果

1+2+3...+100=5050

怎么实现?

  • 初始化两个变量:num赋值为1,用于遍历1到100的整数,sum赋值为0,用于存储累加的结果
  • 使用while循环语句,条件是num<=100,只要num的值小于或等于100,循环就会继续执行下去
  • 在循环体中,将当前数值num累加到sum上,即sum+=num
  • 通过自增运算符,将num的值加一
  • 当num值大于100时,循环结束
  • 最后,用console.log()函数打印出计算结果

do…while语句

do…while循环语句创建一个循环,该循环执行循环体,直到条件计算结果为false

语法:

do{//如果条件结果返回true,则执行该循环体statements;
}while(条件);
  • 与while循环语句不同,do…while语句首先会无条件执行循环体statements一次,然后再判断是否符合条件。
  • 如果符合条件,则重复执行循环体;如果不符合条件,则退出循环,执行循环后面的语句
  • do…while语句跟while语句非常相似,并且任何一个都可以转换成等价的另外一个
  • do…while语句结尾处括号后后有一个分号(;),该分号不能省略

注意:从后面ES6+版本开始,while(条件)后面的分号(;)是可选的

do…whileu循环语句工作原理
在这里插入图片描述

do…while在实践中,当您希望在检查条件之前至少执行一次循环体时,通常会使用该语句。

示例

	<script>var num=0;do{console.log(num);num++;}while(num<5)</script>

运行结果

0
1
2
3
4
  • 初始化一个变量num并赋值为0,用于记录循环计数
  • 使用do…while循环。首先执行一次循环体statements内的代码,然后再检查是否满足继续循环
  • 在循环体内,通过console.log()函数打印出当前num的值
  • 然后使用后置自增运算符将num的值加1,继续循环
  • 循环的条件是num<5,只要num的值小于5,就会继续执行循环体内的代码
  • 每次循环都会使num的值加1,并分别输出当前num的值

while语句

  • 先判断、后循环

do…while

  • 先循环、后判断

for 语句

for 是 JavaScript 提供的另一种循环控制的话句,它和 while 只是语法上存在差异。

for循环语句创建一个具有三个可选表达式的循环

语法:

for(初始化表达式;条件表达式;循环后操作){//循环体statements;}
  • 初始化表达式:这是用于初始化一个计数器。该表达式可以使用varlet关键字声明新的变量,使用var声明的变量不是该循环的局部变量,而是与for循环处在同样的作用域中。用let声明的变量是语句的局部变量
  • 条件表达式:一个条件表达式被用于确定每一次循环是否被执行。如果表达式的结果为true,则循环体statements将被执行。这个表达式是可选的。如果被忽略,则被认为永远为真。如果计算结果为false,那么执行流程将跳出循环
  • 循环后操作:每次循环体执行后都要执行的表达式。通常被用于更新或者自增计数器变量

上述循环控制参数之间使用分号;间隔开。

for循环语句工作原理

在这里插入图片描述

示例:

<script>for(var i=1;i<5;i++){console.log(i);}
</script>

运行结果

1
2
3
4

怎么运行的?

  • 首先,声明一个变量i并赋值为1
  • 其次,如果i的值小于5,则执行循环体输出i值
  • 每次循环i的值都会增加1

在for循环中,三个表达式是可选的

for( ; ; ){statements;}

使用for语句在没有初始化表达式的循环

var j=1;for( ;j<10;j+=2){console.log(j);}

输出

1
3
5
7
9

for语句不使用条件的循环

条件表达式是可选的,如果省略条件表达式,则需要break语句来终止循环

for(var x=1;  ;x+=2){console.log(x);if(x>10){break;}}

输出

1
3
5
7
9
11

中止循环

break语句提前终止整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用(提高效率)

continue语句会终止当前本次循环,并立即继续下一次迭代。一般用于排除或者跳过某一个选项的时候

示例:break中止

<script>var i=1;while(i<=5){console.log(i);if(i === 3){break;}i++;}</script>

输出:

1
2
3

示例:continue中止

<script>var i=1;while(i<=5){console.log(i);if(i === 3){continue}i++;}
</script>

输出

1
2
4
5

循环实战

倒三角

 // 外层打印几行
for (let i = 1; i <= 5; i++) {// 里层打印几个星星for (let j = 1; j <= i; j++) {document.write('★')}document.write('<br>')
}

在这里插入图片描述

九九乘法表

样式css

div {display: inline-block;width: 100px;padding: 5px 10px;border: 1px solid pink;margin: 2px;border-radius: 5px;box-shadow: 2px 2px 2px rgba(255, 192, 203, 0.4);background-color: rgba(255, 192, 203, 0.1);text-align: center;color: hotpink;
}

js文件

 // 外层打印几行
for (let i = 1; i <= 9; i++) {// 里层打印几个星星for (let j = 1; j <= i; j++) {// 只需要吧 ★ 换成  1 x 1 = 1   document.write(`<div> ${j} x ${i} = ${j * i} </div>`)}document.write('<br>')
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/460838.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见关系型数据库产品介绍

更新晚了&#xff0c;不好意思啦&#xff01;继关系型数据库的介绍与历史今天主要和大家分享关系型数据库有哪些产品以及简单的背景介绍。这篇文章介意宝宝们听着舒缓的音乐静静享受。 关系型数据库的产品有很多&#xff0c;下面和大家分享一些比较有名的、使用比较广泛的关系…

GEE详细教程之:将Landsat8与Landsat9影像合成一个影像

1.前言 因项目需求&#xff0c;需要获取一个研究区的Landsat8影像&#xff0c;但Landsat8重复周期长&#xff0c;加之天气的影响&#xff0c;很难获取影像质量较好的影像。Landsat4/5/7的波段顺序与landsat8不同&#xff0c;除此之外&#xff0c;landsat7影像还需要工具进行条带…

解决用DeepL翻译文档后不能编辑问题

第一步&#xff1a;将原始文档另存为.xml格式。 在编辑软件中&#xff0c;选择“文件”-->“另存为”-->选择xml格式。如下图所示&#xff1a; 第二步&#xff1a;使用记事本打开xml文档。 在保存好的xml文档上右击&#xff0c;选择“打开方式”为记事本。如下图所示&a…

Ansible command命令模块 这个模块可以直接在远程主机上执行命令,并将结果返回本主机。

目录 参数介绍练习环境配置主机清单配置无密码链接ping模块 command 命令模块也可以用来安装点东西看个路径 command 指定目录来 指定命令 参数介绍 chdir    # 在执行命令之前&#xff0c;先切换到该目录 executable # 切换shell来执行命令&#xff0c;需要使用命令的绝对…

Get Ready!这些 ALVA 应用即将上线 Vision Pro!

日前&#xff0c;苹果 Vision Pro 正式在美国上市&#xff0c;应用商店首批上线超过 600 款应用程序&#xff0c;出色的显示效果和交互体验&#xff0c;为更多应用提供了全新打开方式。 *图源&#xff1a;Apple 对此&#xff0c;作为全球领先的空间计算技术平台供应商&#xff…

利用路由懒加载和CDN分发策略,对Vue项目进行性能优化

目录 一、Vue项目 二、路由懒加载 三、CDN分发策略 四、如何对Vue项目进行性能优化 一、Vue项目 Vue是一种用于构建用户界面的JavaScript框架&#xff0c;它是一种渐进式框架&#xff0c;可以用于构建单页应用&#xff08;SPA&#xff09;和多页应用。Vue具有简单易学、灵…

【动态规划】【前缀和】【C++算法】LCP 57. 打地鼠

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LCP 57. 打地鼠 勇者面前有一个大小为3*3 的打地鼠游戏机&#xff0c;地鼠将随机出现在各个位置&#xff0c;moles[i] [t,x,y] 表…

Vue3中路由配置Catch all routes (“*“) must .....问题

Vue3中路由配置Catch all routes (“*”) must …问题 文章目录 Vue3中路由配置Catch all routes ("*") must .....问题1. 业务场景描述1. 加载并添加异步路由场景2. vue2中加载并添加异步路由(OK)3. 转vue3后不好使(Error)1. 代码2. 错误 2. 处理方式1. 修改前2. 修…

WordPress函数wptexturize的介绍及用法示例,字符串替换为HTML实体

在查看WordPress你好多莉插件时发现代码中使用了wptexturize()函数用来随机输出一句歌词&#xff0c;下面boke112百科就跟大家一起来学习一下WordPress函数wptexturize的介绍及用法示例。 WordPress函数wptexturize介绍 wptexturize( string $text, bool $reset false ): st…

PCA与梯度上升法

PAC 主成分分析&#xff08;Principal Component Analysis&#xff09; 一个非监督的机器学习算法主要用于数据的降维通过降维&#xff0c;可以发现更便于人类理解的特征其他应用&#xff1a;可视化&#xff1b;去噪 如何找到这个让样本间间距最大的轴&#xff1f; 如何定义样…

Java图形化界面编程——Container容器 笔记

2.3 Container容器 2.3.1 Container继承体系 Winow是可以独立存在的顶级窗口,默认使用BorderLayout管理其内部组件布局;Panel可以容纳其他组件&#xff0c;但不能独立存在&#xff0c;它必须内嵌其他容器中使用&#xff0c;默认使用FlowLayout管理其内部组件布局&#xff1b;S…

编曲入门软件哪个好 编曲入门教程 Studio One哪个版本好 Studio One6.5正版多少钱 FL Studio下载

新手编曲软件推荐&#xff1f;新手学编曲要先熟悉编曲逻辑&#xff0c;因此需要选择编曲逻辑简明易懂的宿主软件。编曲新手应该做哪些准备&#xff1f;准备好编曲设备、宿主软件、基础乐理学习资料。 一、编曲入门软件哪个好 新手入门阶段还没有形成系统的编曲思维&#xff0…