JS while和do whlie循环语句
JavaScript 中的循环语句有以下几种形式:
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值。
!doctype html html head meta charset= utf-8 title while语句的应用 /title script 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); /script /head body /body /html
因为不知道循环次数是多少,所以适合使用 while 语句。上述代码中的 break 语句用于退出循环并执行循环语句后面的代码,关于 break 语句的使用后面会具体介绍。上述代码在 Chrome 浏览器运行后弹出的对话框如图 1 所示。
图 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 值。
!doctype html html head meta charset= utf-8 title do while语句的应用 /title script var sum = 1, i = 1; var ex = 1; 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); /script /head body /body /html
上述代码在 Chrome 浏览器的运行结果和例 1 的完全一样。
23955.html
htmljavaJavaScript相关文章
- JS调试工具,万能的Console,你知道还能这样玩吗?
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈「建议收藏」
- google maps api_js调用谷歌浏览器接口
- Js性能优化:循环正序和倒序的性能差异,以及for和foreach的性能比较
- Js生成二维码_js在线生成二维码
- JS获取当前年份_js获取当前时间年月日
- js获取当前时间标准格式_js获取当前时间年月日并输出
- Vue.js – 引入外部 JS 文件
- 如何使用jscythe并通过Node.js的Inspector机制执行任意JS代码
- 图解-JS冒泡排序
- js关于for循环中的闭包问题详解编程语言
- 创建JS文件:在Linux下实现自动化任务(linux创建js文件)
- js实现MySQL数据库的快速操作(js操作mysql)
- Linux上的JS压缩工具(js压缩工具linux)
- JS技术连接Oracle数据库实现数据交互(js连接oracle实例)
- JS在Oracle中的应用(js如何oracle)
- JS将文件传输至MySQL数据库(.js传文件至mysql)
- Oracle中JS的优势让数据库性能提升(oracle中 js)
- 使用Oracle和JS开发新一代应用仿真世界(oracle js)
- 简单的JS多重继承示例
- js获取服务器控件值的代码
- js替换功能函数,用正则表达式解决,js的全部替换
- 纯JS实现的批量图片预览加载功能
- 兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
- jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
- js猜数字小游戏的简单实现代码
- JS中使用sort结合localeCompare实现中文排序实例
- js和jquery中循环的退出和继续学习记录
- js使用for循环及if语句判断多个一样的name
- JS实现OCX控件的事件响应示例