在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,使用任务管理器来关闭。
在实际开发中,我们一定要避免“死循环”的出现,因为这是很低级的一个错误了。