JS循环语句

在 JavaScript 中,循环语句主要有两种:for 语句和 while 语句。下面分别介绍一下它们:

1. for 语句

从使用习惯上来说,for 语句的整个循环过程通常会由某个被指定的变量来驱动,因此通常更适合用来描述一些执行次数确定的循环。其具体语法如下:

for (语句 1; 语句 2; 语句 3)
{
    被执行的代码块
}

for 语句中的语法单元介绍如下:

  • [定义循环变量]是一个带初始化动作的变量定义语句(例如 let i = 0)。由于这个变量将被用于驱动整个循环的执行,故而被称为循环变量。
  • [循环条件测试]是一个用于测试循环变量并能返回布尔值的表达式(例如 i < 10)。只要该表达式的测试结果为 true,循环就会一直执行下去,该表达式是循环是否继续的判断依据。
  • [更新循环变量]是该循环每重复执行一次之后,循环变量所要做的更新操作(例如 ++i)。通常情况下,循环变量每更新一次,[循环条件测试]就更趋向于返回 false,否则就有可能导致无限循环。
  • [被循环语句]就是该循环要重复执行的语句。它既可以是简单的表达式语句,也可以是一个由多条语句组成的语句块。

例如,如果想在命令行终端中输出从 0 到 9 这 10 个数字,就可以这样写:

for (let i = 0; i < 10; ++i) {
    console.log('数字:', i);
  }

除此之外,for 语句还有 for-of 和 for-in 两种特殊形式。其中,for-of 形式是 ES6 新增的一种循环,主要用于遍历数组、集合等数据结构;而 for-in 则主要用于枚举对象的属性。

2. while 语句

while 语句与 for 语句相比,最大的区别在于它并没有为循环变量的初始化和更新预留语法单元,其具体语法如下:

while (条件)
{
    需要执行的代码
}

while 语句中的语法单元只有两个介绍如下:

  • [循环条件测试]是一个返回布尔值的表达式。只要该表达式的测试结果为 true,循环就会一直执行下去,该表达式是循环是否继续执行的判断依据。
  • [被循环语句]就是该循环要重复执行的语句。它既可以是简单的表达式语句,也可以是一个由多条语句组成的语句块。

这就意味着,while 语句具有更高的自由度。它允许程序员更灵活地安排循环的执行方式(当然了,也相对更容易出错),因此在习惯上更适合用来描述一些执行次数不确定的循环操作。

例如,我们有一个用于逐行读取文本的函数 readLine(text)[3],它要读取的文本是不确定的,程序无法事先知道文本中有多少行内容,但可以确定该函数会在读取完文本之后返回 false,那么我们就可以这样写:

let line = null;
let i = 1;
while (line = readLine(text)) {
    console.log(i + '. ', line);
    i++;
}

当然,如果我们硬要用 for 语句来实现这样的循环,也是可以做到的;而且 while 语句也可以用来执行循环次数确定的操作。

除此之外,while 语句还有一种特殊的形式,被称为 do-while 语句,其具体语法如下:

do {
    [被循环语句]
} while ([循环条件测试]);

该循环与一般 while 循环最大的不同在于,它即使在[循环条件测试]一开始就返回 false 的情况下,[被循环语句]也至少会被执行一次。

例如,对于上面输出文本的循环,如果我们希望在输出正式内容之前无论如何都要先输出一条提示信息,就可以这样写:

let line = '下面是目标文件的内容:';
let i = 1;
do {
    console.log(i + '. ', line);
    i++;
} while (line = readLine(text));
© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏
分享
评论 抢沙发
HarryPotter的头像|艾奇编程网

昵称

取消
昵称表情