一、while 循环语句
1.循环:重复执行一段代码
+ 代码内的循环就是数数
+ 通过数字的变化决定循环的次数
2.循环三要素
2.1开始:从几开始数数
2.2 结束:数到多少结束
2.3 步长:数数的间隔
3.while语句格式
3.1 while(条件){ 代码段 }
3.2 当条件满足时,执行 { } 里的代码段
+ 执行完毕,再次进行条件判断
+ 如果条件满足,再次执行 {} 中的代码段
+ 一次类推,直到条件不满足
+ 循环结束
3.3 循环注意事项:一定要改变初始值
3.4 循环提供了什么东西
+ 重复执行代码的能力
+ 一组有规律的数字
4.练习
4.1在控制台输出 1~ 100 之间 3 的倍数
// 方案1: 基础循环
// 1. 拿到 1 ~ 100 之间的所有数字
// 循环开始: 1
// 循环结束: <= 100
// 循环步长: +1
var n = 1
while (n <= 100) {
// 判断, 如果当前这个 n % 3 === 0 才进行输出
if (n % 3 === 0) console.log(n)
n++
}
// 方案2: 直接锁定数字
// 第一个 3的倍数是 3
var n = 3
while (n <= 100) {
console.log(n)
// 步长设置为 +3
n += 3
}
二、do while 循环语句
1.do while
1.1 格式:do { 代码段 } while { 条件 }
1.2 执行过程 :
+ 先执行一遍代码,在进行条件判断
+ 如果条件满足继续执行代码
+ 如果条件不满足结束循环
2.和 while 的区别
2.1 当初始内容在条件内的时候,while 和do while 循环没有区别
2.2 当在条件外的时候
+ while 循环一次也不会执行
+ do while 会执行一次代码
3.练习
3.1 在页面家一耳光密码(输入正确的内容,关闭 prompt 弹出层,否则一直开启)
/*
实现业务的逻辑
1. 打开页面就要弹出一个输入框, 让用户输入密码
2. 开始判断你输入的对不对
=> 如果不对, 再次执行弹出输入框的代码
=> 再次判断
=> 如果对, 不再执行弹出输入框的代码
*/
do {
// 弹出输入框
var res = prompt('你爱不爱我 ?')
} while (res !== 'yes')
alert('滚犊子')
三、for 循环语句
1.语法:
1.1 for(初始变量;条件判断;修改初始值) { 代码段 }
2.练习
2.1 寻找三次自幂数(水仙花数字)
+ 保证是一个三位数
+ 数字每一位的 三次幂 之和 和这个数字相等
for(var i = 100; i <= 999; i++){
var a = parseInt(i / 100)
var b = parseInt(i % 100 / 10)
var c = i % 10
if(a ** 3 + b ** 3 + c ** 3 === i) console.log( i + "是三次自幂数")
}
四、循环控制语句
1. break :是一个关键字
1.1 挡在循环中遇到这个 break 的时候,会直接结束本次循环
2. continue:是一个关键字
2.1 当你在循环内遇到这个 continue 的时候,会直接结束循环的本次,去到下一次
3.循环控制标记语法
3.1 可以在循环开始确立标记
for (var i = 1; i <= 5; i++) {
console.log('我吃了第 ' + i + ' 个包子')
if (i === 3) {
console.log('我吃饱了')
// 在需要的时候书写一个 break 关键字
break
}
}
3.2 在循环内 break 和 continue 关键字在书写的时候,后面加上标记
for (var i = 1; i <= 5; i++) {
console.log('我拿起了第 ' + i + ' 个包子')
if (i === 3) {
console.log('这个包子掉地下了')
continue
}
console.log('我吃掉了第 ' + i + ' 个包子')
console.log('-------------------------')
}
3.3 直接回到标记位置
//当 i = 3 && j = 3 的时候 执行 break a
//结束 a 标记的 for循环
a:
for (var i = 1; i <= 5; i++) {
console.log('我拿起了第 ' + i + ' 个包子')
// 循环嵌套
b:
for (var j = 1; j <= 3; j++) {
console.log('吃第 ' + i + ' 个包子的第 ' + j + ' 口')
if (i === 3 && j === 1) {
console.log('发现了半条虫子')
// 直接结束有标记的循环
break a
}
}
console.log('第 ' + i + ' 个包子吃完了')
console.log('---------------------')
}