JavaScript while 循环

在 JavaScript 中,循环语句指的是在 “满足某个条件下” 循环反复地执行某些操作的语句。这就很有趣了,现在像 1 + 2 + 3 + ... + 100、1 + 3 + 5 + ... + 99 这样的计算就可以轻松用程序实现了。

在 JavaScript 中,循环语句共有以下 3 种。

JavaScript while 语法

在 JavaScript 中,while 语句是最简单的循环语句。

语法:

while (条件) {
    // 当条件为true时,循环执行
}

说明:

如果 “条件” 返回为 true,则会执行大括号 “{}” 内部的程序。当执行完大括号 “{}” 内部的程序后,会再次判断 “条件”。如果条件依旧还是 true,则会继续重复执行大括号中的程序……循环执行直到条件为 false 才结束整个循环,然后再接着执行 while 语句后面的程序。

在使用 while 循环时,小伙伴们需要清楚以下 2 点。

  • 循环内部的语句一定要用 “{}” 括起来,即使是一条语句也要。
  • 循环内部中,一定要有可以结合 “判断条件” 来让循环可以退出的语句,一般来说都是 i++、i+=2 之类的。如果没有 “判断条件” 和 “退出语句”,循环就会一直运行下去,变成一个 “死循环”。要是这样的话,浏览器崩溃了,你崩溃了,老板也跟着崩溃了……
  • while 循环更适合用于执行未知次数的重复操作。如果是知道要执行多少次重复操作,使用 “for 循环” 更为合适。

JavaScript while 示例

接下来,我们通过几个简单的例子来讲解 JavaScript while 循环是如何使用的。

示例 1:计算 1 + 2 + 3 + … + 100 的值

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        let n = 1;
        let sum = 0;

        // 如果n小于等于100,则会执行while循环
        while (n <= 100) {
            sum = sum + n;
            n = n + 1;
        }

        console.log("1 + 2 + 3 + … + 100 = " + sum);
    </script>
</body>
</html>

运行结果如下。

1 + 2 + 3 + … + 100 = 5050

分析:

变量 n 用于递增(也就是不断加 1),初始值为 1。变量 sum 用于求和,初始值为 0。对于 while 循环,我们一步步来给大家分析一下。

第 1 次执行 while 循环,sum = 0 + 1,n = 2。

第 2 次执行 while 循环,sum = 0 + 1 + 2,n = 3。

第 3 次执行 while 循环,sum = 0 + 1 + 2 + 3,n = 4。

……

第 100 次执行 while 循环,sum = 0 + 1 + ... + 100,n = 101。

记住,每一次执行 while 循环之前,我们都需要判断条件是否满足。如果满足,则继续执行 while 循环;如果不满足,则退出 while 循环。

当第 101 次执行 while 循环时,由于此时 n = 101,而判断条件 n <= 100 返回 false,此时 while 循环不再执行(也就是退出 while 循环)。由于退出了 while 循环,接下来就不会再循环执行 while 中的程序,而是执行 while 后面的 console.log() 了。

示例 2:计算 1 + 3 + 5 + … + 99 的值

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        let n = 1;
        let sum = 0;

        // 如果 n 小于 100,则会执行 while 循环
        while (n < 100) {
            sum += n;         // 等价于 sum = sum + n;
            n += 2;           // 等价于 n = n + 2;
        }

        console.log("1 + 3 + 5 + … + 99 = " + sum);
    </script>
</body>
</html>

运行结果如下。

1 + 3 + 5 + … + 99 = 2500

分析:

在这个例子中,将 while 循环的条件 “n < 100” 改为 “n <= 99” 也是一样的,因为两个条件是等价的。当然,上一个例子 “n <= 100” 其实也等价于 “n < 101”。小伙伴们可以思考一下为什么?

此外,sum += n; 等价于 sum = sum + n;,而 n += 2; 等价于 n = n + 2;。在实际开发中,我们更多使用的是简写形式,大家一定要熟悉这种赋值运算符的简写形式。

至于 while 循环是怎么进行的,可以对比一下上一个例子的具体流程,自己理清一下思路,慢慢消化一下,很简单。

示例 3:死循环

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        while (true) {
            alert("我也是醉了");
        }
    </script>
</body>
</html>

运行结果如下图所示。

JavaScript 死循环

分析:

这就是最简单的 “死循环”,因为判断条件一直为 true,因此会一直执行 while 循环,然后会不断弹出对话框。小伙伴可以自行测试一下,会发现无法停止对话框继续弹出。想要关闭浏览器,可以按下快捷键 “Shift + Ctrl + ESC” ,使用任务管理器来关闭浏览器。

在实际开发中,我们要尽量避免 “死循环” 的出现,因为这是很低级的一个错误了。

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号