JavaScript 条件循环语句
条件循环语句是编程中的一种控制结构,它允许程序根据特定条件重复执行一段代码,直到满足某个条件为止。这种结构通常包括条件语句和循环语句,它们共同作用,使得程序能够根据预设的条件来决定是否继续执行循环体中的代码。
for 循环:
- 适用场景:当知道循环次数时(循环次数已知)。
- 特点:可在一行中定义初始化、条件和增量,结构紧凑。
| 运算符 | 描述 |
| 初始化变量 | 通常用于初始化一个计数器,该表达式可以使用 var 或者 let 关键字声明新的变量,这个变量帮我们来记录次数。推荐使用 let. |
| 条件表达式 | 用于确定每一次循环是否能被执行,如果结果是 true 就继续循环,否则退出循环。 |
| 操作表达式 | 每次循环的最后都要执行的表达式。通常用于更新计数器变量的值。 |
语法:
for循环语法for(初始化变量①; 条件表达式②; 操作表达式③ ){
// 循环体④
}
示例:
for (let i = 1; i <= 5; i++) {console.log("这是第 " + i + " 次循环");
}
执行流程:
- 初始化变量,初始化操作在整个 for 循环只会执行一次。
- 继续执行操作表达式,第二轮结束。......
- 第二轮开始,直接去执行条件表达式(不再初始化变量),如果为 true,则去执行循环体语句,否则退出循环。
- 执行操作表达式,此时第一轮结束。
- 执行条件表达式,如果为 true,则执行循环体语句,否则退出循环,循环结束。
整体执行顺序为:① ② ④ ③ ② ④ ③ ② ④ ③ ...... ② 循环结束
for 循环嵌套for 循环:
for (外循环的初始①; 外循环的条件②; 外循环的操作表达式③) {
for (内循环的初始④; 内循环的条件⑤; 内循环的操作表达式⑥) {
// 需执行的代码⑦;
}
}
整体执行顺序为:① ② ④ ⑤ ⑦ ⑥ ⑤ ⑦ ⑥ ⑤ ...... ⑤ 内循环结束 ③ ② ④ ⑤
⑦ ⑥ ⑤ ⑦ ⑥ ⑤ ...... ⑤ 内循环结束 ③ ...... ② 外循环结束。
2. while 循环
while 循环在条件为真时重复执行代码。适合于不确定循环次数的情况。与for循环不同,while循环的条件是在每次迭代中指定的。只要条件为真,循环就会继续执行。一旦条件为假,循环就会立即停止。
- 特点:先检查条件,条件为真时执行循环体,适合需要动态判断的情况。
- 适用场景:当不确定循环次数时,需基于条件进行判断。
语法:
while (条件表达式) {
// 循环体代码
}
// 1. 先执行条件表达式,如果结果为 true,则执行循环体代码;
// 如果为 false,则退出循环,执行后面代码
// 2. 执行循环体代码
// 3. 循环体代码执行完毕后,程序会继续判断执行条件表达式。
示例:
let count = 1;while (count <= 5) {console.log("这是第 " + count + " 次循环");count++; // 增加计数
}
3. do...while 循环
do...while 循环至少会执行一次循环体,因为条件检查是在循环之后进行的。do while 是先执行代码,在进行判断,所以 do while 至少执行一次。
- 特点:先执行循环体,然后检查条件,确保至少执行一次。
- 适用场景:至少需要执行一次循环体的情况。
语法:
do {
// 循环体代码 - 条件表达式为 true 时重复执行循环体代码
} while(条件表达式);
示例:
let count = 1;do {console.log("这是第 " + count + " 次循环");count++;
} while (count <= 5);
4.练习题
练习题1.九九乘法口诀
练习题2. 一百以内的加法
练习题3.一百以内偶数加法
5.答案
练习题1答案
// for循环实现九九乘法口诀for (let i = 1; i <= 9; i++) {for (let j = 1; j <= i; j++) {document.write(j + 'x' + i + '=' + i * j + ' ');}document.write('<br/>');}// while实现九九乘法口诀let i = 1;let j = 1;while (i <= 9) {j = 1;while (j <= i) {document.write(j + '*' + i + '=' + i * j + ' ');j++;}document.write('<br/>'); // 换行i++;}// do while实现九九乘法口诀let u = 1;let g = 1;do {g = 1;while (g <= u) {document.write(u + "x" + g + "=" + u * g + " ");g++;}document.write('<br/>'); // 换行u++;} while (u <= 9);
练习题2答案
// for循环实现一百以内的加法let sum = 0for (let i = 1; i <= 100; i++) {sum += i;}document.write(sum);// while循环实现一百以内的加法let l = 1;let q = 0;while (l <= 100) {q += l;l++;}console.log(q);// do while循环实现一百以内的加法let y = 1;let x = 0;do {x += y;y++;}while (y <= 100);console.log(x);
练习题3答案
// for循环实现一百以内偶数加法let add = 0;for (let z = 1; z <= 100; z++) {if (z % 2 == 0) {add += z;}}document.write(add);document.write('<br/>');// while循环实现一百以内偶数加法let s = 1;let and = 0;while (s <= 100) {if (s % 2 == 0) {and += s;}s++;}console.log(and);// do while循环实现一百以内偶数加法let n = 1;let m = 0;do {if (n % 2 == 0) {m += n;}n++;} while (n <= 100);console.log(m);
总结:
- 循环语句:用于重复执行代码块(
for、while、do...while)。 - 希望这篇文章能帮助你理解 JavaScript 的条件与循环语句!
相关文章:
JavaScript 条件循环语句
条件循环语句是编程中的一种控制结构,它允许程序根据特定条件重复执行一段代码,直到满足某个条件为止。这种结构通常包括条件语句和循环语句,它们共同作用,使得程序能够根据预设的条件来决定是否继续执行循环体中的代码。 fo…...
LeetCode2207解题思路
题目描述 字符串中最多数目的子序列 解题思路: 题目要求我们找到在 text 中 找到最多可组成 pattern 的字符串个数,并且允许在 text 的任意位置插入 pattern 中一个字符,也就是说我们只需要考虑 text 中的 pattern 含有的字符即可。例如示例…...
opencv图像增强十四:opencv两种白平衡介绍及实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、白平衡介绍二、灰度世界法三、完美反射法 前言 在摄影与影像领域,白平衡是一个至关重要的概念。它直接影响着画面的色彩表现,关系到…...
Linux标准IO(四)-格式化I/O输入
C 库函数提供了 3 个格式化输入函数,包括:scanf()、fscanf()、sscanf(),其函数定义如下所示: #include <stdio.h> int scanf(const char *format, ...); int fscanf(FILE *stream, const char *format, ...); int sscanf(c…...
分布式安装LNMP
目录 搭建LNMP架构 安装mysql 1.上传mysql软件包,关闭防火墙和核心防护 2.安装环境依赖包,桌面安装可能有自带的数据库除 3.配置软件模块 4.编译及安装 5.创建mysql用户 6.修改mysql 配置文件 7.更改mysql安装目录和配置文件的属主属组 8.设置…...
TFTP协议
目录 一、TFTP协议概述 1.1 TFTP协议简介 1.2 TFTP协议特点 二、TFTP协议原理 2.1 TFTP协议工作流程 2.2 TFTP协议数据包格式 三、TFTP协议应用场景 3.1 网络设备配置文件传输 3.2 虚拟机镜像文件传输 3.3 IoT设备固件升级 四、TFTP协议优化方法 4.1 增加超时重传机…...
FPGA随记-二进制转格雷码
反射二进制码(RBC),也称为反射二进制(RB)或格雷码(Gray code),得名于Frank Gray,是二进制数制的一种排列方式,使得连续两个值之间仅有一个比特(二…...
Android常用C++特性之std::unique_lock
声明:本文内容生成自ChatGPT,目的是为方便大家了解学习作为引用到作者的其他文章中。 std::unique_lock 是 C 标准库中的一种灵活的锁管理类,提供了比 std::lock_guard 更多的功能和灵活性。它可以控制对互斥锁(std::mutex&#x…...
网络与信息安全工程师(工信部教育与考试中心)
在当今数字化时代,大量的敏感信息与业务流程在网络上传输和处理,使得网络与信息安全成为保障企业运营、政务管理以及金融交易等关键领域不可忽视的一环。 因此,对网络安全专家的需求日益增长。 例如,金融机构、大型电信运营商以…...
uni-app+vue3开发微信小程序使用本地图片渲染不出来报错[渲染层网络层错误]Failed to load local image resource
我把图片放在assets里面页面通过相对路径引入。结果一直报错。 最后我把图片放在static文件夹下面。然后修改路径指向static就可以了 或者是我们必须先import 这个图片然后在使用 import banner1 from ../../assets/images/banner/banner1.png; <image :src"banner…...
Leetcode 93-复原 IP 地址
有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。 例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.…...
unity 中向指定的动画片段添加动画事件,并播放动画,同时获取动画片段的时长。
示例一 using UnityEngine;using System;public static class AnimationUtils{/// <summary>/// 向指定的动画片段添加动画事件,并播放动画,同时获取动画片段的时长。/// </summary>/// <param name"_animator">需要添加动画…...
JavaEE:探索网络世界的魅力——玩转UDP编程
文章目录 UDPUDP的特点UDP协议端格式校验和前置知识校验和具体是如何工作的? UDP UDP的特点 UDP传输的过程类似于寄信. 无连接: 知道对端的IP和端口号就直接进行传输,不需要建立连接.不可靠: 没有确认机制,没有重传机制,如果因为网络故障导致该段无法到达对方,UDP协议也不会…...
生成式人工智能:企业数字化转型的全新引擎,深度解析The Open Group 2024生态系统架构·可持续发展年度大会
生成式人工智能:企业数字化转型的全新引擎,深度解析The Open Group 2024生态系统架构可持续发展年度大会 随着人工智能技术的飞速发展,生成式人工智能(Generative AI)正以惊人的速度渗透到各行各业,成为企…...
阿里云k8s如何创建可用的api token
阿里云的 Kubernetes 配置文件(如您所提供的 YAML 格式文件)通常不会直接包含用于连接 Kubernetes 集群的令牌。而是包含了客户端证书和私钥数据,这些是用于通过证书验证而不是令牌验证的方式来与 Kubernetes API 服务器进行安全交互的。 1.…...
leetcode刷题day30|贪心算法Part04重叠区间问题(452. 用最少数量的箭引爆气球、435. 无重叠区间、763.划分字母区间)
前言:今天的三道题目都是重叠区间的问题。 452. 用最少数量的箭引爆气球 思路:局部最优:当气球出现重叠,一起射,所用弓箭最少; 全局最优:把所有气球射爆所用弓箭最少。 按照起始位置排序&…...
MQTT客户端实战:从连接到通信。详细说明MQTT客户端和MQTT代理进行通信
EMQX安装 EMQX服务器安装 安装文档,见链接不另外写 https://docs.emqx.com/zh/emqx/latest/deploy/install-ubuntu.html 启动 EMQX 启动为一个 systemd 服务: sudo systemctl start emqx在windows安装客户端 在线 MQTT WebSocket 客户端工具&…...
【go/方法记录】cgo静态库编译以及使用dlv定位cgo崩溃问题
目录 说在前面文件树静态库编译cgo使用崩溃模拟使用dlv定位崩溃参考 说在前面 测试环境:WSL2go版本:go version go1.23.1 linux/amd64gcc版本:gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0cmake版本:3.22.1 文件树 ├── buffer …...
(笔记自用)位运算总结+LeetCode例题:颠倒二进制位+位1的个数
一.位运算总结: 在解题之前理解一下为什么需要位运算?它的本质是什么? 力扣上不少位运算相关的题,并且很多题也会用到位运算的技巧。这又是为什么? 位运算的由来 在计算机里面,任何数据最终都是用数字来表示的&…...
024.PL-SQL进阶—游标
课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :…...
Android Studio中文插件:3分钟极速汉化,告别英文开发障碍
Android Studio中文插件:3分钟极速汉化,告别英文开发障碍 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack …...
vLLM-v0.17.1部署实战教程:3步启用OpenAI兼容API服务
vLLM-v0.17.1部署实战教程:3步启用OpenAI兼容API服务 1. vLLM框架简介 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库,以其出色的速度和易用性著称。这个项目最初由加州大学伯克利分校的天空计算实验室开发,现在已经发展成为一…...
从内核事件到业务洞察:手把手教你用sysdig + Lua脚本定制专属监控看板
从内核事件到业务洞察:用sysdig与Lua脚本构建定制化监控体系 当你的微服务集群每天处理数十亿次API调用时,标准监控指标如CPU使用率或内存消耗早已无法满足需求。真正的挑战在于:当某个关键业务接口的99线突然飙升时,如何快速定位…...
终极指南:buger/jsonparser如何10倍加速处理第三方API不确定性数据
终极指南:buger/jsonparser如何10倍加速处理第三方API不确定性数据 【免费下载链接】jsonparser One of the fastest alternative JSON parser for Go that does not require schema 项目地址: https://gitcode.com/gh_mirrors/js/jsonparser 在处理第三方AP…...
巧用Google Maps与ScreenToGif:零行程数据也能轻松生成动态路线图
1. 从零开始制作动态路线图的必备工具 最近有个朋友问我:"想给客户展示项目选址的交通路线,但实地考察还没开始,怎么做出专业的动态路线图?"这让我想起自己两年前第一次做商业提案时的窘境——当时为了展示物流配送路线…...
Excel VBA图像处理:如何在单元格中显示并调整图片大小
在Excel中处理图片时,VBA(Visual Basic for Applications)是一个强大的工具。今天我们将讨论如何通过VBA代码在Excel的单元格中插入并调整图片大小,以及如何解决一些常见的问题。 背景介绍 假设你有一个Excel工作表,A列从A2开始存放了几个图片文件名,如"test.jpg&…...
GPEN肖像增强使用技巧:自然、强力、细节三种模式适用场景解析
GPEN肖像增强使用技巧:自然、强力、细节三种模式适用场景解析 1. 认识GPEN的三种处理模式 GPEN作为当前最先进的肖像增强工具之一,其核心价值在于提供了三种差异化的处理模式:自然、强力和细节。这三种模式不是简单的强度差异,而…...
stealth.js全解析:40+反检测补丁的配置与优化技巧
Stealth.js全解析:40反检测补丁的配置与优化技巧 在当今的Web自动化领域,反检测技术已成为开发者必须掌握的核心技能之一。无论是数据采集、自动化测试还是其他需要模拟真实用户行为的场景,如何让脚本"隐形"都是决定成败的关键因素…...
告别混乱文件管理:用NERDTree打造VIM项目导航系统
告别混乱文件管理:用NERDTree打造VIM项目导航系统 每次打开一个包含数百个文件的复杂项目时,你是否会感到一阵眩晕?当你在多个目录间反复切换查找某个配置文件时,是否觉得时间在指尖悄然流逝?对于资深VIM用户而言&…...
C++ 中this的秘密
class Test {public:void test() {test1();}void test1() {i = 10...
