一文理解JavaScript中while以及do while循环
先给大家分享一些JavaScript的相关资料:
- 认识JavaScript到初体验
- JavaScript 注释以及输入输出语句
- 变量的使用、语法扩展、命名规范
- JavaScript数据类型简介以及简单的数据类型
- JavaScript获取变量数据类型
- 运算符&算数运算符
- 递增和递减运算符
- 比较运算符和逻辑运算符
- 赋值运算符以及运算符优先级
- JavaScript 流程控制-实际案例学习if语句
- 三元表达式&分支流程控制 switch 语句
- JavaScript的for循环学不明白怎么办?
- 以案例学习JavaScript双重for循环
一、初识
while 语句可以在条件表达式为真的前提下,循环执行指定的一段代码,直到表达式不为真时结束循环。
while语句的语法结构如下 :
while (条件表达式) {
// 循环体代码
执行思路:
先执行条件表达式,如果结果为 true,则执行循环体代码;如果为 false,则退出循环,执行后面代码
执行循环体代码
循环体代码执行完毕后,程序会继续判断执行条件表达式,如条件仍为true,则会继续执行循环体,直到循环条件为 false 时,整个循环过程才会结束
注意:
- 使用 while 循环时一定要注意,它必须要有退出条件,否则会成为死循环
- while 循环和 for 循环的不同之处在于 while 循环可以做较为复杂的条件判断,比如判断用户名和密码
课堂案例 1:
- 打印人的一生,从1岁到100岁
- 计算 1 ~ 100 之间所有整数的和
课堂案例 2:询问你爱我吗
弹出一个提示框, 你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问。
案例分析:
- 弹出输入框,要求用户输入。
- 判断条件比较复杂我们使用 while 循环。
- while 循环语句中的条件表达式只要输入的不是 我爱你,就一直循环。
二、do while循环
do... while 语句其实是 while 语句的一个变体。该循环会先执行一次代码块,然后对条件表达式进行判断,如果条件为真,就会重复执行循环体,否则退出循环。
do... while 语句的语法结构如下:
do {
// 循环体代码 - 条件表达式为 true 时重复执行循环体代码
} while(条件表达式);
执行思路:
- 先执行一次循环体代码
- 再执行条件表达式,如果结果为 true,则继续执行循环体代码,如果为 false,则退出循环,继续执行后面代码
注意:先再执行循环体,再判断,我们会发现 do…while 循环语句至少会执行一次循环体代码
课堂案例 :询问你爱我吗
弹出一个提示框, 你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问。
案例分析:
弹出输入框,要求用户输入。
判断条件我们使用 do…while 循环。
do… while 循环语句中的条件表达式只要输入的不是我爱你,就一直循环。
实现代码:
do {
var love = prompt('你爱我吗?');
} while (love != '我爱你')
alert('登录成功');
三、循环小结
- JS 中循环有 for 、while 、 do while
- 三个循环很多情况下都可以相互替代使用
- 如果是用来计次数,跟数字相关的,三者使用基本相同,但是我们更喜欢用 for
- while 和 do…while 可以做更复杂的判断条件,比 for 循环灵活一些
- while 和 do…while 执行顺序不一样,while 先判断后执行,do…while 先执行一次,再判断执行
- while 和 do…while 执行次数不一样,do…while 至少会执行一次循环体, 而 while 可能一次也不执行
- 实际工作中,我们更常用for 循环语句,它写法更简洁直观, 所以这个要重点学习
四、continue break
4.1 continue 关键字
continue 关键字用于立即跳出本次循环,继续下一次循环(本次循环体中 continue 之后的代码就会少执行一次)。
例如,吃5个包子,第3个有虫子,就扔掉第3个,继续吃第4个第5个包子,其代码实现如下:
for (var i = 1; i <= 5; i++) {
if (i == 3) {
console.log('这个包子有虫子,扔掉');
continue; // 跳出本次循环,跳出的是第3次循环
console.log('我正在吃第' + i + '个包子呢');
4.2 break 关键字
break 关键字用于立即跳出整个循环(循环结束)。
例如,吃5个包子,吃到第3个发现里面有半个虫子,其余的不吃了,其代码实现如下:
for (var i = 1; i <= 5; i++) {