while和do while循环语句

HTML5学堂:在JS的循环语句当中,for、for-in的确是使用管比较频繁的,但是额外还有两种循环语句,一种是while语句,一种是do-while语句,今天主要讲解这看两种语句,并比较一下它们与for的区别。

学过计算机都会接触到循环,循环有很多种,今天我们就来看看while和do while的区别吧

while语句

语法:while(判断条件){}

while循环满足条件后执行大括号内的内容,下面我们来直接看下demo只有当达到条件时累加才会被执行

demo:

    var sum = 0;//声明变量sum用于累加求和
    var i = 1;//声明变量i用于条件判断
    while(i<=100) {
        sum = sum +i;
        i++;
    }
    console.log(sum);//5050
    console.log(i);//101

可以看到当大于100的时候while不满足条件因此没有执行累加,最后结果就为1加到100的结果

do while语句

语法:do {执行} while(条件)

do while循环在字面上就能与while循环区分开来,do while不管结果如何,先do了再进行判断,典型的先斩后奏型,因此第一次执行时无论是否满足条件do里面的代码都将被执行

例如以下demo

    var i = 1;
    do {
        console.log(i); // 1
        i++;
    } while (i < 0);
    console.log(i); // 2

可以看得出来,i不小于0,但是do内的代码还是执行了一次,最终i变为2,因此do while在执行过程中do内代码必定被执行至少一次。

for循环

前端开发中for循环用的较为频繁,for循环类似while循环。

语法:for(初始化;判断语句;表达式){}

用for循环写一个1加到100的程序

    var sum = 0; // 用于存储计算总和
    for (var i = 1; i <= 100; i++) {
        sum = sum + i;
    };
    console.log(sum); // 5050
    console.log(i); // 101

将for循环与while循环对比可以发现,for循环将初始化,条件和表达式都放在一起了使大括号内容可以变得更精简。

实际开发中应尽可能的减少循环操作,如果是从一百个数据内找一个符合条件的内容,适当合理的中断循环是非常必要的,当数据较多时,遍历一次数据耗时会很长,重复的遍历查找会成倍的增加不必要的执行时间,直接影响了页面的性能,使页面响应变慢。

原文发布于微信公众号 - HTML5学堂(h5course-com)

原文发表时间:2016-01-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidatorProvider

DataAnnotationsModelValidator最终是通过它对应的ModelValidatorProvider,即DataAnnotationsMod...

1837
来自专栏自动化测试实战

flask第二十四篇——模板【6】自定义过滤器

2226
来自专栏進无尽的文章

基础篇-ObjectC继承、类别、属性

    在实际的开发过程中,继承和类别都会得到很多用处。对于界面相似度很高的情况下,使用继承可以节省很多代码和设置,只需要在子类中重写父类中的方法,或者增加新的...

431
来自专栏程序员互动联盟

【专业知识】C/C++指针三

今天我们主要介绍函数指针、函数的指针参数以及返回指针的函数 A) 函数指针   C++规定,一个函数的地址就是这个函数的名字。我们需要指出的就是一个指针需要指定...

2697
来自专栏猿人谷

《C++ primer》--第1,2章小结

 1、变量初始化:  定义变量时,应该给变量赋初始值,除非确定将变量用于其他意图之前会覆盖这个初值。如果不能保证读取变量之前重置变量,就应该初始化变量。变量...

18210
来自专栏AzMark

Python 学习笔记之类与实例

类 (class) 封装一组相关数据,使之成为一个整体,并使用一种方法持续展示和维护。

291
来自专栏搞前端的李蚊子

vue.js使用props在父子组件之间传参

本篇文章是我参考官方文档整理的,供大家参考,高手勿喷! prop 组件实例的作用域是孤立的。这意味着不能 (也不应该) 在子组件的模板内直接引用父组件的数据。要...

2754
来自专栏IMWeb前端团队

jQuery中的remove和empty区别

说道dom中移出节点,这两个都可以完成。但也有写差别: empty()是只移除了 指定元素中的所有子节点,拿$(“div”).empty()来说,他只是把 移...

1895
来自专栏郭耀华‘s Blog

TensorFlow 使用变量共享

TensorFlow中的变量一般就是模型的参数。当模型复杂的时候共享变量会无比复杂。

671
来自专栏编程

机器学习之Python基础(二)

标题 类 面向对象 装饰器 1 类 首先举一个创建类的例子 class是声明类的关键字,human是类名,括号里的object是继承的父类(在Python2中如...

17310

扫码关注云+社区