do-while语句和while的区别
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的区别的更多相关文章
- SQL语句——exists和in区别
表结构及数据 user表 order表 in select * from table A where id in (xxxxxxxxxxx):满足条件的数据会被查出来: 先查询子查询的表,然后将内表. ...
- sql几种删除语句的联系与区别
DELETE.TRUNCATE.DROP三种删除语句联系与区别 相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是D ...
- if语句和switch语句的选择与区别
if语句和Switch语句的选择 if 结构 基本if选择结构: 处理单一或组合条件的情况 if-else选择结构:处理简单的条件分支情况 多重if选择结构:处理复杂的条件分支情况 嵌套if选择结构: ...
- if选择语句与switch选择语句的比较、区别及应用场景
if选择语句和switch选择语句的比较: 1.switch语句只支持常量值相等的分支判断,而if语句支持更为灵活,任意布尔表达式均可: 2.switch语句通常比一系列嵌套if语句效率更高:逻辑更加 ...
- if语句中的 == 和= 区别
”==“ 是判断二者的值是否相等 ”=“是赋值,是将后者的值赋值给前者,不需要比较,在if语句中用”==“来判断ul当前的状态,来判断执行的操作,若是用”=“,则相等于说ul的状态就是后者,直接执 ...
- sql语句中#{}和${}的区别
#---将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的 ...
- Python语句,表达式的区别?
参考了网上的文章,说 表达式的结果是值,对象 比如1+2, 是表达式 具体根据运算符不同有算术,逻辑,比较等等类型的表达式 语句是控制程序走向,不产生值 例如if/else等 参考: https:// ...
- 多个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 ...
- sql语句中的insert 和 insert into 的区别?into有什么用?
insert into tableName values(........) insert tableName (字段名1,字段名2,...)values(......)看语句结构就知道区别了 .in ...
随机推荐
- linux: convmv =-======pkgs.org
convmv 不同系统文件名转化 windows: gbk linux: utf8 wget--url coding. vim ---encoding,termcode, fileencoding, ...
- Lightoj 1003 - Drunk(拓扑排序判断是否有环 Map离散化)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1003 题意是有m个关系格式是a b:表示想要和b必须喝a,问一个人是否喝醉就看一个人是 ...
- APM最佳实践: 诊断平安城市视频网性能问题
前言: 平安城市已经是一个关系你我他的民生工程,但由于本身系统的复杂性,给运维工作带来了极大的挑战.如何保障摄像头在线率?如何在系统中找到视频系统故障的问题所在?在我们某一次项目经历中,APM在发现问 ...
- Navicat运行sql文件报错out of memory
下载并安装mysql workbench:
- MySQL中数据表的查操作
查询数据表的全部内容 mysql> show tables;#查看当前数据库下的全部表 +--------------------+ | Tables_in_ceshi_ku | +------ ...
- git-【九】基本常用命令
mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理的git仓库,生成隐 ...
- (转)SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql
本文介绍springboot通过jdbc访问关系型MySQL,通过spring的JdbcTemplate去访问. 准备工作 jdk 1.8 maven 3.0 idea mysql 初始化mysql: ...
- (15)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第三部分(完)
引言 程序截图: 在第二部分教程中,Ray教大家如何在地图中制作可碰撞的区域,如何使用tile属性,如何制作可以拾取的物品以及如何动态修改地图.如何使用“Heads up display”来显示分数. ...
- 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级) Solution
A: Solved. 分别处理出每个%7后余数的数字个数,再组合一下 #include <bits/stdc++.h> using namespace std; #define ll lo ...
- 20165207 预备作业3 Linux安装及学习
Linux安装及学习 假期我没有把我的电脑带回家,受到家里的台式机内存和网吧的一些条件的限制我只在台式机安装了32位系统然后学习了实验楼的Vim课程以及Linux的前八课. 问题与解决 安装过程 我家 ...