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

本文主要是介绍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>')
}

在这里插入图片描述

这篇关于JavaScript流程控制详解之循环结构(倒三角、九九乘法表)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/689491

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置