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

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

    这一节,我们先来给大家介绍一下while语句的用法。

    语法:

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

    说明:

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

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

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script> var n = 1; var sum = 0; //如果n小于等于100,则会执行while循环 while (n <= 100) { sum=sum+n; n=n+1; } document.write("1+2+3+…+100 = " + sum); </script> </head> <body> </body> </html>

    浏览器预览效果如图所示。

    分析:

    变量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后面的document.write()了。

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

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script> var n = 1; var sum = 0; //如果n小于100,则会执行while循环 while (n < 100) { sum += n; //等价于sum=sum+n; n += 2; //等价于n=n+2; } document.write("1+3+5+…+99 = " + sum); </script> </head> <body> </body> </html>

    浏览器预览效果如图所示。

    分析:

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

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

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

    对于while语句,我们还需要特别注意以下2点。

    • (1)循环内部的语句一定要用大括号{}括起来,即使是一条语句也要。while语句
    • (2)循环内部的语句一定要用大括号{}括起来,即使是一条语句也要。do…while语句

    举例:死循环

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

    浏览器预览效果如图所示。

    分析:

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

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