JS中的循环结构语句
什么是循环结构语句?
就是重复的执行一段代码,注意!!!你要有尽头,不能无穷无尽的重复循环
一: 循环的四个要素
- 要有一个初始化变量
- 条件判断
- 要重复执行的代码
- 改变初始化变量!!!(千万不要写死循环,这是我们作为程序猿的最基本的节操,你写的出来的代码都是bug就算了,还TM写死循环那就完蛋了)
例子:
1.初始化一个变量为 num = 1
2.条件判断为 num <= 10
3.要重复执行的代码 console.log(‘我执行了’)
4.改变初始化变量:i++ ,如果不改变那么num还是1,再次判断还是 true 就会进入死循环,只有你改变以后,我们终将有一次不小于10,循环结束
二: 基础循环语句
- while 循环
语法:while (条件){ 要重复执行的代码 }
释义:while 当 … 时。当条件为 true 的时候,就会执行 { } 里面的代码,直到条件为 false 的时候就不再执行 { } 里面的代码。如果一开始条件判断就不满足,那么就一次都不执行
举例说明:
//例1:得到一组有规律的数字
var i = 1 //1.初始化变量
while (i <= 5) {//2.条件判断
console.log(i)//3.要重复执行的代码
i++ //4.改变初始化变量
}//它的执行顺序会是 1234 234 234 ... 直到条件判断为false时结束循环
//最后在控制台会打印出来一组有规律的数字:1 2 3 4 5
//例2:求和案例:求 1 + 2 + 3 + 4 + ... + 100 的和
var i = 1 //
var result = 0
while (i <= 100) {
result += i
i++
}
console.log(result)
- do … while 循环(相对使用较少)
语法:
do{
重复执行的代码
} while(条件)
执行顺序:和 while 循环基本一致,只不过不管条件是否成立,都先执行一次。是先执行一次,不是在最后多一次。
举例说明:
var i =100 //1.初始化变量
do {
console.log(i) //3.要重复执行的代码
i++ //4.改变初始化变量
} while (i <= 10) //2.条件判断
//do ... while 循环定义一个初始化变量后会直接先
//执行3打印一次,不管条件满足不满足,然后再进进入4改变初始化变量
//然后进行条件判断,满足条件继续循环,不满足结束循环,此时我们写的是不满足条件的会直接结束循环
//假设其满足条件,其执行顺序从开始是 134 234 234 234 ...直到条件判断不满足结束循环
- for 循环(我们在开发中使用最多的一种循环)
语法:for ( 初始化;条件判断;自身改变 ) { 重复执行的代码 }
注意:初始化,条件判断,和自身改变之间使用 分号 分隔
举例说明:
//for循环的第一种语法形式:
console.log('循环要开始了')
// 1.初始化 2.条件 4.自身改变
for (var i = 1; i <= 10; ++i) {
console.log(i) //3.要重复执行的代码
}
console.log('循环结束了')
//循环开始之后 -> 1234 -> 234 ->234 ... 直到条件判断为false结束循环
//一定要好好分析这个是怎样循环的,按照步骤一步一步来,好好记住循环的四个要素!!!
//for循环的第二种形式
var i = 0 //1.初始化
for ( ; i <= 10; ) { //2.条件判断
console.log('我执行了')//3.重复执行的代码
i++ //4.改变初始化变量
}
//执行顺序: 1234 234 234 ... 直到条件判断为false结束循环
三: 循环语句的控制
- 释义:在我们需要的时候,直接打断循环,或者不执行循环的某一次
- 控制循环的关键字
① break
当在循环里面的时候,只要代码执行了 break ,那么循环立即结束,跳到循环外面
② continue
当在循环里面的时候,只要代码执行了 continue,就结束循环的本次,直接进入下一次
举例说明:
//例1:
for (var i =1; i <= 10; i++) {
console.log('我吃的第' + i + '个包子')
if (i === 5) {
break //循环到了 i === 5 的时候会进入此处,那么就会直接结束循环,后面的 6 7 8 9 10就不会执行了
}
}
//例2:
for (var i =1; i <= 10; i++) {
console.log('我吃的第' + i + '个包子')
if (i === 5) {
continue // 这个包子我不吃了, 我直接跳过去吃下一个包子
// continue 后面的代码就不执行了, 直接去到 i++
}
}