首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js while for

whilefor 是 JavaScript 中两种常用的循环结构,用于重复执行一段代码直到满足特定条件。

while 循环

while 循环会在指定条件为真(true)时持续执行循环体内的代码。一旦条件变为假(false),循环就会停止。

基础概念:

  • 条件表达式:在每次循环开始前进行求值,以确定是否继续执行循环。
  • 循环体:满足条件时执行的代码块。

优势:

  • 结构简单,适用于不确定循环次数的情况。

类型:

  • 基本的 while 循环。
  • do...while 循环,保证至少执行一次循环体。

应用场景:

  • 遍历数组或对象,直到找到特定元素。
  • 实现用户输入验证,直到用户输入正确格式的数据。

示例代码:

代码语言:txt
复制
let i = 0;
while (i < 5) {
  console.log(i);
  i++;
}

do {
  let userInput = prompt("请输入一个正数");
  if (parseInt(userInput) > 0) {
    console.log("输入正确");
    break;
  } else {
    console.log("输入错误,请重试");
  }
} while (true);

for 循环

for 循环通常用于已知循环次数的情况,它将初始化、条件检查和迭代步骤集中在一行中。

基础概念:

  • 初始化表达式:在循环开始前执行一次,通常用于设置计数器。
  • 条件表达式:与 while 循环相同,每次循环开始前进行求值。
  • 迭代表达式:每次循环结束后执行,通常用于更新计数器。

优势:

  • 结构紧凑,便于控制循环计数器。
  • 适用于已知循环次数的场景。

类型:

  • 基本的 for 循环。
  • 嵌套 for 循环,用于处理多维数组或复杂的数据结构。

应用场景:

  • 遍历数组的所有元素。
  • 重复执行特定次数的操作,如渲染动画帧。

示例代码:

代码语言:txt
复制
for (let i = 0; i < 5; i++) {
  console.log(i);
}

let matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];
for (let i = 0; i < matrix.length; i++) {
  for (let j = 0; j < matrix[i].length; j++) {
    console.log(matrix[i][j]);
  }
}

在使用 whilefor 循环时,可能会遇到的问题包括无限循环,这通常是由于条件表达式永远为真或者迭代步骤没有正确更新计数器导致的。解决这类问题的方法是确保条件表达式能够在某个时刻变为假,并且在每次循环中正确更新计数器或状态。

如果遇到循环性能问题,可以考虑以下解决方案:

  • 减少循环体内的计算量。
  • 使用更高效的数据结构,如哈希表。
  • 如果适用,使用数组的高阶函数,如 map, filter, reduce 等,这些函数通常由 JavaScript 引擎优化过,性能更好。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • while循环嵌套while循环

    滑动窗口算法非常适用用来查找数组连续区间,核心就是: while循环嵌套while循环 窗口收缩 窗口匹配 下面我们写出伪代码框架套路,并用这个套路来解相应的题,该思路来自labuladong的算法小抄...注意:先搞出来,再谈优化,别一开始就纠结是不是重复调用了,搞出来了这都简单 框架套路 求最小窗口(缩小后更新结果集) 结果集=[] left=0 right=0 end = 数组大小 while right...< end: right++; while 窗口需要收缩: if 窗口满足要求: 结果集.添加([left,right]) left...++; return 结果集 求最大窗口(缩小前更新结果集) 结果集=[] left=0 right=0 end = 数组大小 while right < end: right++;...while 窗口需要收缩: left++; 结果集.添加([left,right]) return 结果集 实现大同小异,但是python代码几乎都是最少的,以下都用python

    3.5K20

    while和do while循环语句

    HTML5学堂:在JS的循环语句当中,for、for-in的确是使用管比较频繁的,但是额外还有两种循环语句,一种是while语句,一种是do-while语句,今天主要讲解这看两种语句,并比较一下它们与for...学过计算机都会接触到循环,循环有很多种,今天我们就来看看while和do while的区别吧 while语句 语法:while(判断条件){} while循环满足条件后执行大括号内的内容,下面我们来直接看下...demo只有当达到条件时累加才会被执行 demo: var sum = 0;//声明变量sum用于累加求和 var i = 1;//声明变量i用于条件判断 while(i<=100...不满足条件因此没有执行累加,最后结果就为1加到100的结果 do while语句 语法:do {执行} while(条件) do while循环在字面上就能与while循环区分开来,do while不管结果如何...for循环 前端开发中for循环用的较为频繁,for循环类似while循环。

    2.7K70

    深探 while 与 do while

    我们很多时候刷题会用到循环,对while和do while分辨得可能不是很清楚,那么今日我们就来一探究竟。...循环中的关键字:while与do while 简单来说,while与do while最大的区别便是while会先判断再执行语句,而do while便是先do(执行)再判断,也就是说do while不管条件是否成立...while语句:入口条件循环 1.while循环的通用形式如下: while(){ 循环体; } 2.终止while循环: while循环有一点非常重要:在构建while循环时,必须要让测试表达式的值有变化...3.while:入口条件循环(for循环语句也是) while循环是使用入口条件的有条件循环。什么是“有条件”呢,它其实指的是语句部分的执行取决于测试表达式描述的条件。...1.do while循环的通用形式如下: do{ 循环体 }while();注:do while语句以分号结尾 那么最后我们该如何选择使用哪一种语句呢?

    1.8K20

    while()循环

    回顾一下java基础的while(true)循环,有时候实际项目中也会看到在用。...本小节来梳理一下 理解 只要while括号汇总返回的true那么大括号中的内容点就会一直执行下去,因此while(true)表示无限循环 使用场景 一、比如需要对上传的图片做一定的处理,图片不知道什么时候上传...,一次上传的图片数量也不确定,但一旦上传就需要及时处理,这个时候采用定时任务框架APScheduler就不一定合适了,此时采用while True的方式,问题就解决了 二、树结构需要获取某个节点下面所有的子节点...,由于节点下面可能会有n多个子节点,此时就需要通过while(true)去无限循环判断,当查到某个子节点的值为空时表示到了最后一级节点此时就可以跳出循环了 while(true){}为无限循环 说明:一般情况下...> q = workQueue; Iterator it = q.iterator(); while (it.hasNext()) {

    1.5K10

    while、do...while、嵌套循环复习

    一、while循环结构 (1)基本语法 while(循环条件) { 循环体(可以有多条语句); 循环变量迭代 } (2)执行流程         首先进行循环条件判断,如果为...true,则执行{ }里的语句,如果为 false,则直接执行while后的语句,不进入循环体。...(3)细节 1)循环条件是一个返回布尔值的表达式 2)while循环是先进行判断,后执行语句 (4)练习         使用while循环打印1-100之间所有能被5整除的数 public class...} } }  二、do...while 循环结构 (1)基本语法 循环变量初始化; do{ 循环体(语句); 循环变量迭代; }while(循环条件); (2)介绍...2)while(循环条件); 后有一个分号 3)do...while 是先执行,在判断。

    1.3K40

    EasyC++20,while和do while循环

    这是EasyC++系列的第20篇,简单聊聊C++当中的while循环用法。 while循环 while循环是没有条件初始化也没有条件更新的循环,它只有测试条件以及循环体。...可以理解成类似这样的for循环: for (; i < n;) { } while循环写成这样: while (test-condition) { body; } 圆括号当中是测试条件...比如下列代码: int i = 0; while (i < 5) { cout << "hello" << endl; } 因为我们没有在循环体当中对i的值进行修改,所以它永远也不可能满足>=...do while循环 do while循环和for循环以及while循环不同,它是出口条件,而非入口条件。 什么意思呢,也就是说do while循环是先执行循环体当中的内容, 再进行判断是否终止。...而for循环以及while循环是先执行条件判断,满足条件再执行循环体。也就是说do while循环可以确保循环体至少运行一次。

    87420
    领券