1. JavaScript 基础

  2. 深入数据和类型

  3. 函数进阶

  4. 运算符

  5. 浏览器存储

  6. Document

  7. Web API

  8. 事件

  9. 工具与规范

  10. 实例

  11. 练习

for 语句

for 循环同样能实现一个循环,相对 while 循环略微复杂,灵活性也更高。

语法如下:

for (begin; condition; step) {
    // code
}
  • begin:开始时执行。
  • condition:每轮循环前判断, true 则执行代码, false 结束循环。
  • step:每轮循环后执行。

下面来看一个简单的例子。

$$jsdemo$$
$$edit$$
for (let i = 0; i < 3; i++) {
    alert(i)
}
  • 在开始时赋值变量 i = 0。
  • 每轮循环前判断 i 是否小于 3,如果成立执行 alert(i),否则结束循环。
  • 每轮循环结束执行 i++。

以上代码可以用我们已经学过的 while 循环来改写。

$$jsdemo$$
$$edit$$
let i = 0
while (i < 3) {
    console.log(i)
    i++
}

绝大部分 while 都有控制变量定义(let i = 0)、条件判断(i < 3)、控制变量改变(i++)这三部分。因此 for 循环的表达式就是将这三部分组合到了一行代码中, for (let i = 0; i < 3; i++)

实例

以下代码实现了打印从 1 至 10 之间的偶数。

$$jsdemo$$
$$edit$$
for (let i = 1; i <= 10; i++) {
    if (i % 2 == 0) {
        console.log(i)
    }
}

结束或跳过循环

breakcontinue 同样可以在 for 循环内部中起作用。

$$jsdemo$$
$$edit$$
for (let i = 0; i < 10; i++) {
    if (i == 3) {
        // 当 i 等于 3 时跳过此轮循环
        continue
    } else if (i == 6) {
        // 当 i 等于 6 时结束循环
        break
    }
    console.log(i)
}

省略语句段

for 循环中的语句段是可以被省略的。

$$jsdemo$$
$$edit$$
let i = 0 
// 省略 begin 代码段
for (; i < 5; i++) {
    console.log(i)
}
$$jsdemo$$
$$edit$$
let i = 0
// 省略 begin 代码段
for (; i < 5;) {
    console.log(i)
    i++
}

当然也可以将 for 循环省略成 for(;;){...} ,它与 while(true) 是等价的。

for in 语句

for in 语句可以作用于一个数组,循环数组长度的次数,每轮循环都会得到一个下标,语法如下:

for (let index in array) {
    // code
}
  • index:每轮循环的下标。
  • array:循环的数组。

以下是一个小例子:

$$jsdemo$$
$$edit$$
let names = ["鸣人", "柯南", "路飞"]
for (let i in names) {
    console.log(i) // 打印下标
    console.log(names[i]) // 打印数组中的元素
}

for of 语句

for of 语句与 for in 类似,同样是作用于数组,不过每轮得到的直接就是列表项,语法如下:

for (let item in array) {
    // code
}
  • item:每轮循环的列表项。
  • array:循环的数组。

以下是一个小例子:

$$jsdemo$$
$$edit$$
let names = ["鸣人", "柯南", "路飞"]
for (let name of names) {
    console.log(name)
}

练习

  1. 假如有一个包含着一些数字的数组,求出数组中的最大值和最小值。
  2. for 循环打印出 a、b(由用户输入)之间的所有质数。