循环语句是用于重复执行一段代码块的方法,JavaScript 提供了 while
、do-while
、for
等不同类型的循环语句。
一个完整的循环体包括:初始化表达式、循环条件和迭代器。
while
循环
while
循环用于在条件为 true
的情况下,重复执行一段代码。
循环体的单次执行叫作 一次迭代。
任何表达式或变量都可以是循环条件,循环条件会被计算,结果会转化为布尔值。
与 if
类似,如果循环体只有一条语句,也可以省略大括号 {…}
,但不推荐这样。
每次迭代之前都要检查条件。
示例:
1 | let i = 0; // 初始化表达式,通常用于声明计数器变量,没有会报错 undefined |
死循环示例:
1 | let i = 0; |
do-while
循环
do-while
循环与 while
循环类似,但它先执行一次循环体,然后检查条件是否为 true
,如果条件为真时,则继续执行循环体。
需要注意使用场景,只有在不管条件是否为真,都要 至少执行一次 循环体时,才使用 do-while
,其它场景推荐 while
循环。
每次迭代后都要检查条件。
示例:
1 | let i = 0; |
for
循环
for
循环是一种更加复杂,但也最常适用的循环结构,用于重复执行一段代码。for
循环包含三个部分:初始化表达式、循环条件和迭代器。以下是 for
循环的基本语法:
每次迭代之前都要检查条件,可以使用其他设置。
示例:
1 | for (let i = 0; i < 5; i++) { |
死循环示例:
1 | let i = 0; |
省略语句段
for
循环可以省略初始化表达式、循环条件或迭代器中的任意一个或多个,但分号 ;
必须保留。分号用于分隔各个部分,省略其中一个部分时仍需要保留相应的分号。
示例:
1 | let x = 0; |
循环嵌套
嵌套循环是指在一个循环体内包含另一个完整的循环结构。嵌套循环在每次执行外部循环时,同时执行一次内部循环。
正三角示例:
1 | // 示例 A |
1 | // 示例 B |
倒三角示例:
1 | // 示例 A |
1 | // 示例 B |
break
终止(结束、跳出)循环
break
用于终止(结束、跳出)当前的循环或 switch
语句,如果没有 break
,则会继续执行后续 case
(即发生“穿透”现象)。
“无限循环 + break
“ 的组合适用于不必在循环开始/结束时检查条件,但需要在中间甚至是主体的多个位置进行条件检查的情况。
示例:
1 | let count = 0; |
continue
继续下一次(跳过)循环
continue
用于在循环中提前结束当前迭代,并继续下一次迭代。continue
是 break
的 “轻量版”,它不会停掉整个循环。而是停止当前这一次迭代,并强制启动新一轮循环(如果条件允许的话)。
示例:
1 | for (let i = 0; i < 8; i++) { |