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 条评论
登录 后参与评论

相关文章

来自专栏C/C++基础

C++解引用运算符*重载

“*”是一个一元操作符,它作用于指针,获取指针所指单元的内容。当某个类中对*操作符重载时,是将该类对象当做一个指针看待,而用*操作符提取指针所指向的内容。考察如...

684
来自专栏IMWeb前端团队

递归函数的优化

本文作者:IMWeb 寒纱阁主 原文出处:IMWeb社区 未经同意,禁止转载 递归函数是一个函数自我调用而构成的,如下是一个典型的递归阶乘函数: fu...

17210
来自专栏Java技术栈

一个诡异的“可见性”问题

之前介绍过可见性的特性,最近做测试的时候发现了一个很诡异的问题,下面看看这三个例子。 test1: test1这个例子加了volatile,所以程序正确退出输出...

2726
来自专栏一“技”之长

Swift讲解专题十一——属性 原

        属性将值与类,结构体,枚举进行关联。Swift中的属性分为存储属性和计算属性两种,存储属性用于存储一个值,其只能用于类与结构体,计算属性用于计算...

763
来自专栏转载gongluck的CSDN博客

C++拷贝构造函数(深拷贝,浅拷贝)

对于普通类型的对象来说,它们之间的复制是很简单的,例如:   int a=88;   int b=a;   而类对象与普通对象不同,类对象...

2707
来自专栏Java学习网

JavaScript依赖注入的实现思路

JavaScript依赖注入的实现思路 如今各个框架都在模块化,连前端的javascript也不例外。每个模块负责一定的功能,模块与模块之间又有相互依赖,那么问...

1846
来自专栏desperate633

关于Java构造函数(Constructor)的常见问题总结1 为什么调用子类的构造方法的时候,默认会调用父类的构造方法2 常见错误:Implicit super constructor is und

当继承自一个类的时候,构造方法就会首先调用super()方法。如果没有显式的写这个语句,那么编译器就会自动插入这个语句。这就是为什么我们上面的那个例子程序会先调...

703
来自专栏cs

c++那些事儿5.0 模板

模板 是泛型编程的重点,在后面的STL中,模板的功能得到广泛运用。 在java中泛型,集合都有模板的身影,弄清模板可以让我们更加深入学习。 ---- 可讲的...

34012
来自专栏韩伟的专栏

框架设计原则和规范(二)

此文是《.NET:框架设计原则、规范》的读书笔记,本文内容较多,共分九章,将分4天进行推送,今天推送4-5章。 1. 什么是好的框架 2. 框架设计...

2855
来自专栏专注 Java 基础分享

java基础之继承(二)

上篇我们介绍了java中的构造方法,了解了关键字this和super在继承中所起到的作用,this可以显式调用重载的构造方法,super可以显式的调用父类中的任...

1868

扫描关注云+社区