js中while死循环语句_JS while和do whlie循环语句

在程序设计中,循环语句是一种很常用的流程控制语句。循环语句允许程序在一定的条件下,反复执行特定代码段,直至遇到终止循环的条件为止。

JavaScript 中的循环语句有以下几种形式:

while 语句;

do…while 语句;

for 语句;

for in 语句。

for in 循环语句主要用于遍历数组元素或对象属性,我们之后会介绍它,在这里主要介绍前 3 种循环语句。本节介绍 while 和 do...while 循环,for 循环下节介绍。

JS while语句

while 语句是最常用的一种循环语句,在程序中常用于只需根据条件执行循环而不需关心循环次数的情况。

while 语句的基本语法如下:

while(条件表达式){

循环体;

}

说明:

条件表达式:为循环控制条件,必须放在圆括号中,可以是任意表达式,但一般为关系表达式或逻辑表达式,取值为真或假。注意:值为 true、非 0、非空的都是真值,反之则为假值。

循环体:代表需要重复执行的操作,可以是简单语句,也可以是复合语句。当为简单语句时,可以省略大括号{},否则必须使用大括号{}。

while 语句在执行时,首先判断条件表达式的值,如果为真,则执行循环体语句,然后再对条件表达式进行判断,如果值还是为真,则继续执行循环体语句;否则执行 while 语句后面的语句。如果表达式的值在第一次判断就为假(为 false 或 0 或为 null 等值),则一次也不会执行循环体。

需要注意的是,为了使 while 循环能正常结束,循环体内应该有修改循环条件的语句或其他终止循环的语句,否则 while 循环将进入死循环,即会一直循环不断地执行循环体。

例如,下面的循环语句就会造成死循环。

var i=1,s=0;

whiel(i<=5){

s+=i;

}

上述代码中 i 的初始值为 1,由于循环体内没有修改 i 变量的值,所以表达式 i<=5 永远为真,因而循环体会一直执行。

死循环会极大地占用系统资源,最终有可能导致系统崩溃,所以我们编程时一定要注意避免死循环。

【例 1】使用 while 语句求出表达式 ex=1+1/(2*2)+1/(3*3)+…+1/(i*i) 的值小于等于 1.5 时的i值。

while语句的应用

var sum = 1, i = 1;

var ex = 1;

while(sum <= 1.5){

sum += 1/((i + 1)*(i + 1));

if(sum > 1.5)

break;

i++;

ex +=" + 1/(" + i + "*" + i + ")";

}

alert("表达式的值小于等于1.5时的i=" + i + ",对应的表达式为:" + ex);

因为不知道循环次数是多少,所以适合使用 while 语句。上述代码中的 break 语句用于退出循环并执行循环语句后面的代码,关于 break 语句的使用后面会具体介绍。上述代码在 Chrome 浏览器运行后弹出的对话框如图 1 所示。

38880c13a12a5e221727675d79defbec.png

图 1:while 循环运行结果

JS do…while语句

do…while 语句是 while 语句的变形。两者的区别在于,while 语句把循环条件判断放在循环体语句执行的前面,而 do…while 语句则把循环条件判断放在循环体语句执行的后面。

do…while 语句的基本语法如下:

do{

循环体;

}while (条件表达式);

“条件表达式”和“循环体”的含义与 while 语句的相同。在此需要注意的是,do…while 语句最后需要使用;结束,如果代码中没有加上;,则 JavaScript 会自动补上。

do…while 语句在执行时,首先执行循环体语句,然后再判断条件表达式的值,如果值为真(值为 true 或非 0 值),则再次执行循环体语句。do…while 语句至少会执行一次循环体,这一点和 while 语句有显著的不同。

下面使用 do…while 语句修改示例 1

【例 2】使用 do…while 语句求出表达式 ex=1+1/(2*2)+1/(3*3)+…+1/(i*i) 的值小于等于 1.5 时的 i 值。

do…while语句的应用

var sum = 1, i = 1;

var ex = 1;

do{

sum += 1/((i + 1)*(i + 1));

if(sum > 1.5)

break;

i++;

ex +=" + 1/(" + i + "*" + i + ")";

}while(sum <= 1.5);

alert("表达式的值小于等于1.5时的i=" + i + ",对应的表达式为:" + ex);

上述代码在 Chrome 浏览器的运行结果和例 1 的完全一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值