循环结构(重点)
-
循环结构,就是根据某些给出的条件,重复的执行同一段代码
-
循环必须要有某些固定的内容组成
- 初始化
- 条件判断
- 要执行的代码
- 自身改变
WHILE 循环
-
while,中文叫 当…时,其实就是当条件满足时就执行代码,一旦不满足了就不执行了 -
语法
while (条件) { 满足条件就执行 } -
因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了
// 1. 初始化条件 var num = 0; // 2. 条件判断 while (num < 10) { // 3. 要执行的代码 console.log('当前的 num 的值是 ' + num) // 4. 自身改变 num = num + 1 } 复制代码- 如果没有自身改变,那么就会一直循环不停了
案例1: 实现1-100 之间所有的偶数
var m = 1;
while (m <= 100) {
if (m % 2 == 0) {
console.log(m); //2,4,6....100
}
m++; // 等同于 m = m+1
}
复制代码
案例2: 求 1 ~100 之间所有 3 的倍数的和
var num = 1;
var sum = 0; // 求和的初始值为0
while (num <= 100) {
// 第一步: 求3的倍数
if (num % 3 == 0) {
// console.log(num); // 第二步:累加求和 3+6+9+12+...+99
sum += num // 等同于 sum = sum +num
};
num++
}
console.log('求和为', sum);
复制代码
DO WHILE 循环
-
是一个和
while循环类似的循环 -
while会先进行条件判断,满足就执行,不满足直接就不执行了 -
但是
do while循环是,先不管条件,先执行一回,然后在开始进行条件判断 -
语法:
do { 要执行的代码 } while (条件)// 下面这个代码,条件一开始就不满足,但是依旧会执行一次 do 后面 {} 内部的代码 var num = 10 do { console.log('我执行了一次') num = num + 1 } while (num < 10) 复制代码
案例1: 输出1-100 之间的所有的数
// var n = 1;
// do {
// console.log(n); //1,2,3
// n++
// } while (n <= 100)
复制代码
案例2: 猜数游戏,输入一个数字,根据用户输的数与标准值(8)进行比较,并给出提示(大了
// /小了),以便下次的输入能接近标准值,直到猜中为止
do {
var num = prompt('输入一个数!!!')
if (num > 8) {
alert('大了')
} else if (num < 8) {
alert('小了')
} else {
alert('输入正确');
break
}
} while (true)
复制代码
FOR 循环
-
和
while和do while循环都不太一样的一种循环结构 -
道理是和其他两种一样的,都是循环执行代码的
-
语法:
for (var i = 0; i < 10; i++) { 要执行的代码 }// 把初始化,条件判断,自身改变,写在了一起 for (var i = 1; i <= 10; i++) { // 这里写的是要执行的代码 console.log(i) } // 控制台会依次输出 1 ~ 10 复制代码 -
这个只是看起来不太舒服,但是用起来比较好用
案例1: 累加--用for循环计算1-100之间所有整数之和以及平均值
var sum = 0 //和的初始值
for (var i = 1; i <= 100; i++) {
sum += i
}
console.log(sum / (i - 1));
复制代码
BREAK 终止循环
-
在循环没有进行完毕的时候,因为我设置的条件满足,提前终止循环
-
比如:我要吃五个包子,吃到三个的时候,不能在吃了,我就停止吃包子这个事情
-
要终止循环,就可以直接使用
break关键字for (var i = 1; i <= 5; i++) { // 没循环一次,吃一个包子 console.log('我吃了一个包子') // 当 i 的值为 3 的时候,条件为 true,执行 {} 里面的代码终止循环 // 循环就不会继续向下执行了,也就没有 4 和 5 了 if (i === 3) { break } } // break在 while 中使用 var n = 1; while (n <= 5) { console.log('我吃了第' + n + '个包子'); if (n == 3) { break // 终止循环 } n++ } 复制代码
CONTINUE 结束本次循环
-
在循环中,把循环的本次跳过去,继续执行后续的循环
-
比如:吃五个包子,到第三个的时候,第三个掉地下了,不吃了,跳过第三个,继续吃第四个和第五个
-
跳过本次循环,就可以使用
continue关键字for (var i = 1; i <= 5; i++) { // 当 i 的值为 3 的时候,执行 {} 里面的代码 // {} 里面有 continue,那么本次循环后面的代码就都不执行了 // 自动算作 i 为 3 的这一次结束了,去继续执行 i = 4 的那次循环了 if (i === 3) { console.log('这个是第三个包子,掉地下了,我不吃了') continue } console.log('我吃了一个包子') } // continue 在 while 中使用 var n = 0; while (n <= 5) { n++ if (n == 3) { continue // 结束本次循环,执行下一次循环 } console.log('我吃了第' + n + '个包子'); }