do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。其实就是,代码在刚开始执行的时候,都是要先走一遍do循环体内的代码,然后在与while里面的条件进行判断,成立循环就一直继续下去,不成立就跳出循环。循环体内代码至少被执行一次。(肚子饿了,看到吃的先狂吃一顿,直到被发现了,就闭嘴停不吃了)

while语句是属于前测试循环语句,也就是说,在循环体内的代码被执行之前,就会对出口条件求值。其实就是先与while里面的条件进行判断,成立就走循环体内的代码,不成立就不走循环体内代码。循环体内的代码有可能永远不会执行。(肚子饿了,先问一下能不能吃东西,同意了就狂吃,直到不允许吃为止,不同意,就忍着忍着忍着不吃走了.....)

一.do-while语句

do-while语句的语法:

do{

  statement

}while(expression);

看下面示例:

var i=10;

do{

  i+=2;

}while(i<10)

alert(i)           // 12     (允许你吃了,就给了你两个蛋挞)

第一眼看10<10不成立呀,alert(i)应该弹出10才对呀,为什么是12呢?因为在对表达式求值之前,都要先执行一遍循环体内的代码(i+2=10+2;i=12),然后才会与出口条件进行判断(i<10=>12<10,),成立就继续循环,不成立就跳出循环,执行结束!

看下面示例

var i=0;

do{

 i+=2;

alert(i)       // 2,4,6,8,10   只要变量小于10,循环就一直继续下去,直到不满足条件后寄跳出循环。(允许你吃了,连着给了你好几个蛋挞)

}while(i<10)

二.while语句

while语句的语法:

while(expression){

  statement

}

看下面示例:

var i=10;

while(i<10){

 i+=2

 alert(i)       // 什么都没有   条件不成立,没有走循坏体 (我就是不给你吃不给你吃,一个蛋挞都不给)

}

alert(i)           // 10     (好吧,那我啃老去了,这个10,是全局变量i=10)

在看下面示例

var i=0;

while(i<10){

 i+=2

 alert(i)        // 2,4,6,8,10   只要变量小于10,循环就一直继续下去,直到不满足条件后寄跳出循环。(看你可怜,允许你吃了吧,连着给了你好几个蛋挞)

}

while里面的判断条件成立,然后走循环体,直到不满足条件后,跳出循环,执行结束。

do-while && while

do-while  语句至少执行一次循环体内的代码;

while       条件不成立,语句永远不会执行循环体内的代码;

分享技术,分享快乐!

do-while语句和while的区别的更多相关文章

  1. SQL语句——exists和in区别

    表结构及数据 user表 order表 in select * from table A where id in (xxxxxxxxxxx):满足条件的数据会被查出来: 先查询子查询的表,然后将内表. ...

  2. sql几种删除语句的联系与区别

    DELETE.TRUNCATE.DROP三种删除语句联系与区别 相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是D ...

  3. if语句和switch语句的选择与区别

    if语句和Switch语句的选择 if 结构 基本if选择结构: 处理单一或组合条件的情况 if-else选择结构:处理简单的条件分支情况 多重if选择结构:处理复杂的条件分支情况 嵌套if选择结构: ...

  4. if选择语句与switch选择语句的比较、区别及应用场景

    if选择语句和switch选择语句的比较: 1.switch语句只支持常量值相等的分支判断,而if语句支持更为灵活,任意布尔表达式均可: 2.switch语句通常比一系列嵌套if语句效率更高:逻辑更加 ...

  5. if语句中的 == 和= 区别

    ”==“ 是判断二者的值是否相等   ”=“是赋值,是将后者的值赋值给前者,不需要比较,在if语句中用”==“来判断ul当前的状态,来判断执行的操作,若是用”=“,则相等于说ul的状态就是后者,直接执 ...

  6. sql语句中#{}和${}的区别

    #---将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的 ...

  7. Python语句,表达式的区别?

    参考了网上的文章,说 表达式的结果是值,对象 比如1+2, 是表达式 具体根据运算符不同有算术,逻辑,比较等等类型的表达式 语句是控制程序走向,不产生值 例如if/else等 参考: https:// ...

  8. 多个if语句和else if区别

    多个if是所有的if都会进行判断if else if是只要有满足条件的,就不再对之后的else if进行判断比如a = 2;if(a==1) c=1;if(a==2) c=2;if(a%2==0) c ...

  9. sql语句中的insert 和 insert into 的区别?into有什么用?

    insert into tableName values(........) insert tableName (字段名1,字段名2,...)values(......)看语句结构就知道区别了 .in ...

随机推荐

  1. IntelliJ IDEA 、PyCharm、WebStorm、PhpStorm等JetBrains公司软件 激活的License Server本地搭建教程

    一.背景 IntelliJ IDEA是JetBrains公司的一款IDE,主要用于java开发,可以编写Java.Groovy.Kotlin.Scala等语言,也可以直接做Android开发. 同系列 ...

  2. (2.11)Mysql之SQL基础——存储过程与变量

    (2.11)Mysql之SQL基础——存储过程 关键字:mysql存储过程 查看存储过程: []SELECT * FROM information_schema.ROUTINES WHERE ROUT ...

  3. mysql int 整数类型 解释显示宽度 和 存储宽度

    存储宽度 是实际存储记录宽度 存储宽度默认是写死的,就算修改宽度也改变不了,改变的是显示宽度 ============有符号和无符号int============= 创建一个 无符号的 int 整数类 ...

  4. go-004-数据结构

    在 Go 编程语言中,数据类型用于声明函数和变量. 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存. Go 语言按类别有以下几种 ...

  5. 第六章 优化服务器设置--高性能MySQL 施瓦茨--读书笔记

    MySql的默认配置不适用于使用大量资源,因为其通用性很高. 不要期望改变配置文件会带来巨大的性能提升.提升大小取决于工作负载,通常可以通过选择适当的配置参数得到两到三倍的性能提升.在这时候,性能提升 ...

  6. HDU5086:Revenge of Segment Tree(规律题)

    http://acm.hdu.edu.cn/showproblem.php?pid=5086 #include <iostream> #include <stdio.h> #i ...

  7. java基础语法 List

    List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3,角标2上也可以有个3)因为该集合体系有索引, ArrayList:底层的数据结构使用的是数组结构(数组长度是可 ...

  8. 002-mybatis主配置文件

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC & ...

  9. IBM究竟是一家怎样的公司

    每次被问到这样的“简单”问题,我都很纠结: 这家公司,从创始至今已经积累了几十万种技术(2015年蝉联专利排行榜23年之久,仅2015年专利数7355项),开发了上万种产品(从银行的交易系统,到航空的 ...

  10. Linux内核分析 05

    扒开系统调用的三层皮(下) 一,给MenuOS增加time和time-asm命令 把time和time-asm添加到MenuOS里面去 作为命令.扩展MenuOS的功能.本周把上周增加的系统调用添加进 ...