JavaScript 循环

JavaScriptBeginner
立即练习

介绍

在本实验中,你将学习如何在 JavaScript 中使用循环。循环是编程中的一个基本概念,它允许你重复执行一段代码。这对于遍历数据列表或执行特定次数的操作等任务非常有用。

你将探索 JavaScript 中三种主要的循环类型:

  • for 循环: 重复执行一段代码已知次数。
  • while 循环: 只要指定条件为真,就重复执行一段代码。
  • do-while 循环: 与 while 循环类似,但它在检查条件之前至少执行一次代码块。

你还将学习如何使用 break 语句提前退出循环。

你所有的工作都将在 WebIDE 中完成。你将在 script.js 文件中编写 JavaScript 代码,该文件已在 index.html 中链接。你可以通过切换到实验环境中的 Web 8080 标签页来查看代码的输出。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 93%。获得了学习者 98% 的好评率。

创建带初始化器和条件的 for 循环

在本步骤中,你将创建你的第一个 for 循环。当你预先知道想要重复某个操作的次数时,for 循环是理想的选择。

for 循环的基本语法是:
for (initializer; condition; final-expression) { // 要执行的代码 }

  • Initializer (初始化器)let i = 0 是一个例子。它在最开始时运行一次,用于声明和初始化一个计数器变量。
  • Condition (条件)i < 5 是一个例子。这个表达式在每次循环迭代之前都会被检查。如果为真,循环继续;如果为假,循环停止。

让我们创建一个简单的循环来生成一个项目列表。从左侧的文件浏览器中打开 script.js 文件,并添加以下代码。

const output = document.getElementById("output");
let htmlContent = "<ul>";

// 这个 for 循环有一个初始化器 (let i = 0) 和一个条件 (i < 3)
for (let i = 0; i < 3; i++) {
  htmlContent += `<li>Item ${i}</li>`;
}

htmlContent += "</ul>";
output.innerHTML = htmlContent;

在这段代码中:

  • let i = 0 将循环计数器 i 初始化为 0。
  • i < 3 是一个条件,只要 i 小于 3,循环就会继续运行。
  • i++ 是在每次迭代后递增计数器的 final-expression(我们将在下一步重点介绍它)。

添加代码后,保存文件。然后,点击 Web 8080 标签页查看输出。你应该会看到一个包含三个项目的无序列表。

网页显示由 for 循环生成的列表

在 for 循环中使用递增来计数

在本步骤中,你将重点关注 for 循环的第三部分:final-expression(最终表达式),它通常用于递增计数器。

final-expression(例如 i++)在每次循环迭代结束时运行。它会更新循环计数器,使其更接近条件变为假的点。i++i = i + 1 的常用简写。

让我们修改循环以从 1 计数到 5。将 script.js 中现有的代码替换为以下内容:

const output = document.getElementById("output");
let htmlContent = "<h2>Counting from 1 to 5:</h2>";

// final expression i++ 在每次循环后递增计数器
for (let i = 1; i <= 5; i++) {
  htmlContent += `Count: ${i}<br>`;
}

output.innerHTML = htmlContent;

注意这些变化:

  • 初始化器现在是 let i = 1,所以我们从 1 开始计数。
  • 条件是 i <= 5,所以只要 i 小于或等于 5,循环就会运行。
  • i++ 表达式确保计数器在每次迭代时增加。

保存文件并刷新 Web 8080 标签页。你将看到输出更改为从 1 到 5 的计数列表。

截图显示代码输出从 1 计数到 5

实现 while 循环进行重复操作

在本步骤中,你将学习 while 循环。只要指定的条件为真,while 循环就会继续执行一段代码。

其语法比 for 循环更简单:
while (condition) { // 要执行的代码 }

使用 while 循环时,你必须在循环之前处理计数器变量的初始化,并在循环内部处理其递增。忘记递增计数器将导致无限循环,这可能会使你的浏览器崩溃。

让我们使用 while 循环重写之前的计数示例。将 script.js 中的代码替换为:

const output = document.getElementById("output");
let htmlContent = "<h2>Counting with a while loop:</h2>";

let i = 1; // 1. Initializer (初始化器)
while (i <= 5) {
  // 2. Condition (条件)
  htmlContent += `Count: ${i}<br>`;
  i++; // 3. Increment (递增)
}

output.innerHTML = htmlContent;

这段代码实现了与上一步的 for 循环相同的结果,但结构不同。初始化器、条件和递增现在是独立的语句。

保存文件并检查 Web 8080 标签页。输出应该与上一步完全相同,展示了实现相同重复的另一种方法。

添加 do-while 循环以至少执行一次

在本步骤中,你将探索 do-while 循环。此循环是 while 循环的一个变体,但有一个关键区别:do-while 循环在检查条件之前,总是会至少执行一次其代码块。

语法是:
do { // 要执行的代码 } while (condition);

当你需要先执行一个操作,然后决定是否重复它时,这非常有用。让我们通过一个条件最初为假的示例来实际看看。

script.js 中的代码替换为:

const output = document.getElementById("output");
let htmlContent = "<h2>Testing a do-while loop:</h2>";

let i = 10; // 从一个使 while 条件为假的值开始

// 即使 i 不小于 5,此循环也会运行一次
do {
  htmlContent += `The value of i is: ${i}<br>`;
  i++;
} while (i < 5);

output.innerHTML = htmlContent;

在此示例中,由于 i 是 10,条件 i < 5 从一开始就是假的。但是,因为这是一个 do-while 循环,在检查条件之前,do 块内的代码会运行一次。

保存文件并查看 Web 8080 标签页。你将看到消息“The value of i is: 10”,证明循环正好运行了一次。

使用 break 语句跳出循环

在本步骤中,你将学习如何使用 break 语句提前退出循环。break 语句会立即终止当前循环,并将控制权转移到循环之后的语句。

当你需要在循环中搜索某个内容,并希望在找到后立即停止,而无需完成剩余的迭代时,这非常有用。

让我们使用一个本应运行 10 次的 for 循环,但当满足某个条件时会提前停止。将 script.js 中的代码替换为:

const output = document.getElementById("output");
let htmlContent = "<h2>Using the break statement:</h2>";

for (let i = 1; i <= 10; i++) {
  if (i === 6) {
    htmlContent += "Found 6! Breaking the loop.<br>";
    break; // 立即退出循环
  }
  htmlContent += `Current number is ${i}<br>`;
}

htmlContent += "Loop finished.";
output.innerHTML = htmlContent;

在这段代码中,for 循环被设置为从 1 计数到 10。但是,if 语句会检查 i 是否等于 6。当它等于 6 时,break 语句被执行,循环终止。代码将不会打印数字 7 到 10。

保存文件并查看 Web 8080 标签页。你将看到计数停止在 5,后面跟着“Breaking the loop”消息。

总结

恭喜你完成了关于 JavaScript 循环的这个实验!你已经学会了如何通过重复代码块来控制程序的流程。

在这个实验中,你学习了:

  • for 循环:非常适合在你预先知道迭代次数时使用,它包含一个初始化器、一个条件和一个最终表达式。
  • while 循环:只要条件为真就会重复执行,并且需要手动管理计数器。
  • do-while 循环:在检查条件之前,保证代码块至少执行一次。
  • break 语句:提供了一种根据条件提前退出任何循环的方法。

掌握循环是成为一名熟练的 JavaScript 开发者的关键一步。请随意进一步尝试此实验中的代码,以巩固你的理解。