JS中的循环结构[for,while,do while]结构分析及实例讲解。流程控制语句[break和continue]分析及讲解

循环结构分析及示例

for循环

for循环是一种基于计数器的循环,允许自定义循环的初始化、条件和迭代步骤。

语法:

for (初始化表达式;测试表达式;更新表达式){

// 循环体

}

初始化表达式:在循环开始前执行一次,通常用于声明和初始化循环控制变量。

测试表达式:在每次迭代前执行,如果为true,则执行循环体;如果为false,则退出循环。

更新表达式:在每次迭代后执行,通常用于更新循环控制变量。

示例:打印1到10的整数。

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

在这个代码块中,var i = 1是初始化表达式,它将变量i初始化为1。i <= 10是测试表达式,只要i的值小于或等于10,循环就会继续执行。i++是更新表达式,每次循环迭代后i的值会增加1。

while循环

while循环会持续执行,只要其测试表达式的结果为true

语法:

while (测试表达式) {
    // 循环体
}

测试表达式:在每次迭代前进行测试,如果为true,则执行循环体;如果为false,则退出循环。

 示例:打印1到10的整数

var j = 1; // 初始化
while (j <= 10) {
    console.log(j);
    j++; // 迭代(重要,否则会导致无限循环)
}

在这个代码块中,j被初始化为1,然后进入while循环。只要j小于或等于10,循环就会继续执行。每次迭代后,j的值会增加1,以确保最终能够退出循环。

do...while循环

do...while循环至少执行一次,之后每次迭代都会检查测试表达式。

语法:

do {
    // 循环体
} while (测试表达式);

测试表达式:在每次迭代后进行测试,如果为true,则继续执行下一次迭代;如果为false,则退出循环。

示例:至少执行一次循环体。

var k = 1; // 初始化
do {
    console.log(k);
    k++; // 迭代(重要,否则会导致无限循环)
} while (k <= 10);

在这个例子中,循环体至少执行一次,然后检查k是否小于或等于10。如果是,循环继续执行;如果不是,循环退出。

控制流程语句:breakcontinue

  • break语句:用于立即退出循环。无论是forwhile还是do...while循环,break都会立即终止循环的执行。

  • continue语句:用于跳过当前迭代的剩余部分,并立即开始下一次迭代。它只影响当前的迭代过程。

示例:使用breakcontinue

for (var i = 1; i <= 10; i++) {
    if (i === 5) {
        break; // 当i等于5时,退出循环
    }
    console.log(i); // 打印1到4和6到10的数字
}

for (var i = 1; i <= 10; i++) {
    if (i % 2 === 0) {
        continue; // 跳过偶数
    }
    console.log(i); // 只打印奇数
}

在第一个示例中,当i等于5时,break语句被执行,导致循环立即退出。在第二个示例中,当i为偶数时,continue语句被执行,导致跳过当前迭代的console.log(i),只打印奇数。

综合实例源码

circulation.html<!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循环打印1-10for(var a=1; a<=10;a++){console.log(a);}//while循环打印11-20var b = 10;while(b>=10 && b<=20){console.log(b);b=b+1; //b++   }//do-while循环打印20-30var c = 20;do{if(c>30){break;}else{console.log(c);c++; //c=c+1}}while(c>20 && c<=100)//for循环打印0-100中的奇数for(var i=100;i>=0;i--){if(i%2!=0){console.log(i);}else{console.log('----'+"偶数:"+i+'----');continue;}}//while循环打印0-100中的偶数var w = 0;while(w<=100){if(w%2==0){console.log('这是while循环中的偶数'+w);}else{w++;continue;}w++;}//do while循环打印奇数及偶数d = 0do{if(d%2==0){console.log('这是偶数'+d);}else if(d%2!=0){console.log('这是奇数'+d);}d++;}while(d<=100)</script>
</body>
</html>

 实例解析

1. for循环打印1-10

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

这个循环会打印从1到10的整数。a初始化为1,只要a小于或等于10,循环就会继续。每次迭代后,a增加1。

2. while循环打印11-20

var b = 10;

        while(b>=10 && b<=20){

            console.log(b);

            b=b+1; //b++

        }

这段代码首先定义了一个变量 b 并初始化为 10。接下来,它进入一个 while 循环,此循环的条件是 b 必须同时满足 >=10 和 <=20。在循环体中,执行以下操作:

  1. 使用 console.log(b); 打印当前的 b 值。
  2. 通过 b=b+1(等同于 b++)来增加 b 的值。

循环逻辑 

  • 当 b 初始化为 10 时,因为 10 >= 10 且 10 <= 20 成立,所以进入循环。
  • 在每次循环中,打印当前的 b 值,然后 b 的值增加 1
  • 当 b 增加到 21 时,循环条件 21 <= 20 不再成立,所以循环结束。

3. do...while循环打印20-30

var c = 20;
do {
    if(c > 30) {
        break;
    } else {
        console.log(c);
        c++; // 相当于 c=c+1
    }
} while(c > 20 && c <= 100);

这个循环会打印从20到30的整数。c初始化为20,循环至少执行一次。如果c大于30,循环通过break语句退出。否则,打印c的值,然后c增加1。循环继续,只要c在20到100之间。

4. for循环打印0-100中的奇数

for(var i=100; i>=0; i--) {
    if(i % 2 != 0) {
        console.log(i);
    } else {
        console.log('----' + "偶数:" + i + '----');
        continue;
    }
}

for 循环逻辑
  • 初始化:变量 i 初始化为 100
  • 条件:循环持续执行直到 i 降到 0 以下。
  • 迭代:每次循环结束后,i 的值递减 1i--)。
循环体内的条件判断
  • 使用 if (i % 2 != 0) 检查 i 是否为奇数:
    • 如果是奇数:使用 console.log(i); 直接打印该数值。
    • 如果是偶数
      • 使用 console.log('----' + "偶数:" + i + '----'); 打印格式化的字符串,标明它是一个偶数。
      • 执行 continue; 语句,即跳过本次循环的剩余部分,直接进入下一次迭代。

5. while循环打印0-100中的偶数

var w = 0;
while(w <= 100) {
    if(w % 2 == 0) {
        console.log('这是while循环中的偶数' + w);
    } else {
        w++;
        continue;
    }
    w++;
}

while 循环逻辑
  • 初始化:变量 w 初始化为 0
  • 条件:循环持续执行直到 w 超过 100
循环体内的逻辑
  • 使用 if (w % 2 == 0) 检查 w 是否为偶数:
    • 如果是偶数:使用 console.log('这是while循环中的偶数' + w); 打印偶数,并附带一段文字说明,标明它是在 while 循环中被识别和打印的。
  • 否则(即 w 是奇数时):
    • 首先增加 w 的值(w++),确保跳过奇数,因为 continue 语句将跳过循环的剩余部分,直接进入下一次迭代的条件判断。
  • 在 if 语句之后,无论是打印了偶数还是遇到了奇数并执行了 continuew 的值都会再次通过 w++ 递增,以确保下一次循环的进行。

6. do...while循环打印奇数及偶数

var d = 0;
do {
    if(d % 2 == 0) {
        console.log('这是偶数' + d);
    } else if(d % 2 != 0) {
        console.log('这是奇数' + d);
    }
    d++;
} while(d <= 100);

这个循环会打印0到100(包括100)的所有整数,并标明每个数字是奇数还是偶数。循环使用do...while结构,至少执行一次。然后,根据d的奇偶性打印相应的消息,之后d增加1。循环继续,只要d小于或等于100。

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

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

相关文章

【1429】招生管理管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 招生管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

内蒙古自治区工程系列生态环境专业技术人才职称评审条件

内蒙古自治区工程系列生态环境专业技术人才职称评审条件链接关于印发《内蒙古自治区工程系列生态环境专业技术人才职称评审条件》的通知_内蒙古自治区人民政府类别基本条件业绩成果备注助理工程师1.具备硕士学位或第二学士学位&#xff1b;2.具备大学本科学历或学士学位&#x…

2024年新算法-鹦鹉优化器(PO)优化BP神经网络回归预测

2024年新算法-鹦鹉优化器(PO)优化BP神经网络回归预测 亮点&#xff1a; 输出多个评价指标&#xff1a;R2&#xff0c;RMSE&#xff0c;MSE&#xff0c;MAPE和MAE 满足需求&#xff0c;分开运行和对比的都有对应的主函数&#xff1a;main_BP, main_PO, main_BPvsBP_PO&#x…

LeetCode 题目 66:加一【python5种算法实现】

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 python数据分析…

抖音 小程序 获取手机号 报错 getPhoneNumber:fail auth deny

这是因为 当前小程序没有获取 手机号的 权限 此能力仅支持小程序通过试运营期后可用&#xff0c;默认获取权限&#xff0c;无需申请&#xff1b; https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/guide/open-capabilities/acquire-phone-number-acqu…

Redis入门到通关之Redis网络模型-用户空间和内核态空间

文章目录 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博客 关于博主&#xff1a; 我是 请回答1024&#xff0c;一个追求数学与计算的边界、时间与空间的平衡&#xff0c;0与1的延伸的后端开发者。 博客特色&#xff1a; 在我的…

DevOps(十三)Jenkins之Selenium插件配置

一、Selenium Grid详细介绍 Selenium Grid 是 Selenium 测试套件的一部分&#xff0c;主要用于通过并行执行测试来提高测试执行的速度和效率。它允许您在多个环境&#xff08;不同的浏览器和操作系统&#xff09;上同时运行测试&#xff0c;从而帮助在开发过程中快速发现跨浏览…

Github 2024-04-25Go开源项目日报Top10

根据Github Trendings的统计,今日(2024-04-25统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10Vue项目1Go编程语言:构建简单、可靠和高效的软件 创建周期:3474 天开发语言:Go协议类型:BSD 3-Clause “New” or “Revised” Lic…

spark3.0.0单机模式安装

注&#xff1a;此安装教程基于hadoop3集群版本 下载安装包 下载spark3.0.0版本&#xff0c;hadoop和spark版本要对应&#xff0c;否则会不兼容 用xftp上传Linux虚拟机&#xff0c;上传目录/bigdata&#xff08;可修改&#xff09; 解压 tar -zxvf /bigdata/spark-3.0.0-bin-h…

背包问题汇总

本文涉及知识点 动态规划汇总 状态机dp 01背包 有n件物品&#xff0c;体积分别是v[i]&#xff0c;价值分别是w[i]&#xff0c;有个包的容积是bv。如何选择物品使得&#xff0c;在总体积不超过vb的前提下&#xff0c;让总价值最大。 动态规划的状态表示 dp[i][j] 表示处理完…

go垃圾回收机制

Go 语言的垃圾回收&#xff08;Garbage Collection, GC&#xff09;机制是其内存管理的核心部分&#xff0c;它负责自动检测并回收不再使用的内存。Go 的垃圾回收机制可以分为以下几个主要类别&#xff1a; 1. 标记&#xff08;Mark&#xff09; 根节点&#xff1a;垃圾回收从…

适用于WPF模式开发的主题和控件库Material Design

简介: MaterialDesignInXamlToolkit 是一个开源的 GUI 库,它提供了 Google Material Design 风格的 GUI 元素,可以在 .NET Framework 和 .NET Core 上使用。它的目的是帮助 .NET 开发人员快速构建具有现代化外观的应用程序。 MaterialDesignInXamlToolkit 包含了许多常用的…

CentOS 7.9.2009 中 Docker 使用 GPU

一、安装nvidia驱动 1.1&#xff0c;查看显卡驱动 # 查看显卡型号 lspci | grep -i nvidia 1.2&#xff0c;进入 PCI devices &#xff0c;输入上一步查询到的 2204 1.3&#xff0c;进入 官方驱动 | NVIDIA&#xff0c;查询 Geforce RTX 3090 驱动并下载 1.4&#xff0c;禁用…

冯老师降维打击申论课

冯老师降维打击申论课&#xff0c;以其独到的见解和精湛的教学技巧&#xff0c;将复杂的申论知识变得简单易懂。通过深入浅出的讲解&#xff0c;帮助考生迅速掌握申论精髓&#xff0c;轻松应对考试。课程内容丰富实用&#xff0c;深受考生好评&#xff0c;是备考申论的不二之选…

【SQL代理中转注入】对DVWA登录界面username字段实施注入

一、实验过程 步骤0&#xff1a;注释掉相关username防护&#xff0c;截图如下&#xff1a; 以DVWA为攻击目标&#xff0c;将login.php中第21、22行注释掉 步骤1&#xff1a;源码分析&#xff0c;截图如下&#xff1a; 如此可知&#xff0c;首先需要通过token验证&#xff0c;然…

CTFHub(web sql)(四)

Cookie注入 Cookie 注入的原理也和其他注入一样&#xff0c;只不过是将提交的参数已 Cookie 方式提交&#xff0c;而一般的注入是使用 GET 或者 POST 方式提交&#xff0c;GET 方式提交就是直接在网址后面加上需要注入的语句&#xff0c;POST 方式则是通过表单&#xff0c;GET …

feign整合sentinel做降级知识点

1&#xff0c;配置依赖 <!-- Feign远程调用依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency> <!--sentinel--><dependency>…

【数据结构(邓俊辉)学习笔记】向量04——有序向量

文章目录 0.概述1.比较器2.有序性甄别3.唯一化3.1低效算法3.1.1实现3.1.2 复杂度3.1.3 改进思路3.2 高效算法3.2.1 实现3.2.2 复杂度 4.查找4.1统一接口4.2 语义定义4.3 二分查找4.3.1 原理4.3.2 实现4.3.3 复杂度4.3.4 查找长度4.3.5 不足 4.4 Fibonacci查找4.4.1 思路及原理4…

【03-掌握Scikit-learn:深入机器学习的实用技术】

文章目录 前言数据预处理缺失值处理数据缩放特征选择模型训练参数调整模型评估总结前言 经过了对Python和Scikit-learn的基础安装及简单应用,我们现在将更深入地探究Scikit-learn的实用技术,以进一步提升我们的数据科学技能。在本文中,我们将涵盖数据预处理、特征选择、模型…

探索 VisionOS 辅助功能:VoiceOver 手势

当继续探索 VisionOS 时,一直在深入研究其辅助功能,特别是 VoiceOver。 VoiceOver 是一款基于手势的屏幕阅读器,让您无需看屏幕即可享受使用设备的乐趣。这对于基于视觉的设备非常重要,这样每个人都可以使用 Apple Vision Pro,无论其视觉能力如何。 Apple 一直在努力支持…