TL;DR

  • 循环用于重复一系列语句。每个重复称为一个迭代,与循环关联的代码块称为循环主体
  • 当某个条件为真时,while 循环将重复执行。for 循环能够控制在循环开始之前和每次循环迭代运行之后的情况。
  • 与循环条件关联的变量称为计数器,通常命名为i
  • 注意!while 循环的条件最终必须为 false,以避免无限循环。
  • 所有循环都可以用 while 来写,但如果事先知道循环多少次,for 循环是最佳选择。

while 循环

while 循环可以在满足特定条件时重复执行代码:

1
2
3
4
while (condition) {
// 循环主体
// 当条件满足时执行代码
}

与循环关联的代码称为循环主体(body),循环主体的单次执行叫作一次迭代。while 语句,在每次循环迭代前,都要对条件进行评估以确定其是否成立。

  • 如果条件的值为true,则执行while循环主体中的代码,然后,重新评估该条件以检查其是否仍然正确。循环继续。
  • 如果条件的值为false,则循环主体代码停止执行或不执行。

while 循环主体必须放在花括号({...})中。(主体只有一条语句时,可以省略花括号,但作为初学者,应该始终使用)

for 循环

for 循环更加复杂,但它是最常用的循环形式:

1
2
3
4
for ( initialization; condition; final expression ) {
// 循环主体
// 条件为真是执行
}
  • initialization:初始值,进入循环时执行一次。
  • condition:条件,每次循环迭代之前检查是否为真,如果为 false,停止循环。
  • loop body:循环主体,条件为真是,重复运行。
  • final expression:最终表达式,每次循环迭代后执行。

循环计数器

上述 for 循环中的变量称为计数器,通常命名为 i。计数器可以在循环初始化是声明,以将其范围限制在循环主体中。

1
2
3
4
for (let i = 1; i <= 5; i++>) {
console.log(i); //ok
}
console.log(i); //error

应该使用哪个循环?

for 循环之所以出色,是因为它包含默认计数的概念,从而避免了无限循环的问题。但是,这意味着必须时写代码时就需要知道希望循环运行多少次,对于尚不知道代码应运行多少次的情况,while 循环是有意义的。

所有循环都可以用 while 来写,但如果事先知道循环多少次,for 循环是最佳选择。