# 循环语句
循环语句在js当中主要用于重复做一件事情。
js当中最主要的循环语句有三种,for循环,while循环和do-while循环
# for
for 是一种经常被用到的循环结构
例如:控制台循环打印1到10 的数字
// for 括号后跟着 三个表达式, 三个表达式用 分号(;) 隔开
// var i = 0 表示定义一个循环遍历变量, 并赋初值 为 0
// i < 10 表示 一个 布尔表达式, 如果此条件为真,则会一直执行循环代码块当中的内容
// 表达式 i++ 用来循环更新变量,使得变量越来越接近于 布尔表达式当中的10
<script>
for (var i = 0; i < 10; i++) {
// 循环代码块
console.log(i + 1);
}
</script>
从上面的例子可以看出, var i = 0 ; 只执行一次, 然后再执行 i < 10 ,如果成立 执行 循环代码块中的内容 , 最后执行 i++ ; 然后循环 从 i < 10 …到 i++ 往复执行
for 语句执行过程
# while
while 也是一种循环结构,它经常作用于不知道要遍历多少次,只知道什么时候结束的场景。
使用while语句需要注意:在循环语句体内必须定义一个退出的条件, 否则会造成死循环
while 语句执行过程
while 循环通常先判断条件表达式,然后再决定是否执行循环语句体中的内容
while(布尔测试条件) {
// 语句体
}
举例
<script>
// 定义循环变量
var i = 1;
// 判断是有资格进入循环条件内容
while (i < 10) {
console.log(i);
// 设置自增, 使得 i 满足 大于 10 后退出
i++;
}
</script>
# do-while
do-while 也是一种循环结构, 通常do-while 是 先执行循环体然后才判断条件(这个正好和while相反,while是先判断条件后执行), 条件判断的结果影响是否下一次进入循环语句
所以说 do-while会至少执行一次
语法
do {
// 循环体
} while(循环条件判断)
举例
do-while至少执行一次
<script>
do {
console.log("执行");
} while (false);
</script>
do-while 循环打印
<script>
var i = 0;
do {
console.log(i);
i++;
} while (i < 10);
</script>
# break
break 代表终止循环 ,在 for ,while 和 do..while 中都可以使用
举例:for 循环 break
<script>
// 输出打印到 5 就终止了
for (var i = 0; i < 10; i++) {
console.log(i);
if (i == 5) {
break;
}
}
</script>
while循环break
<script>
var i = 0;
while (i < 10) {
console.log(i);
if (i == 5) {
break;
}
i++;
}
</script>
do…while 循环 break
<script>
var j = 0;
do {
console.log(j);
j++;
if (j == 6) {
break;
}
} while (j < 10);
</script>
虽然以上三个例子都还没有到达条件语句结尾, 但是break 就可以提前结束循环
# continue
continue 表示跳过某一次的循环进入到下次循环,本次条件符合,continue 后面的语句则不会被执行
举例
for 循环跳过某次执行
<script>
// 可以看到输出结果,唯独没有打印 5 ,因为被 continue 跳过了
for (var i = 0; i < 10; i++) {
if (i == 5) {
continue;
}
console.log(i);
}
</script>
while 循环跳过某次执行
<script>
var i = 0;
while (i < 10) {
if (i == 5) {
i = 6;
continue;
}
console.log(i);
i++;
}
</script>
do…while 跳过某次执行
<script>
var i = 0;
do {
console.log(i);
i++;
if (i == 5) {
i = 6;
continue;
}
} while (i < 10);
</script>
# 死循环
死循环是永远也不退出的循环
死循环有时候是我们故意写的,比如 一直执行某个任务
for 死循环
// for 循环表达式中什么也不写,即为 死循环,即不会主动退出的循环
for(;;) {
// 循环体
}
while 死循环
while (true) { console.log("run...");}
do-while 死循环
do { console.log("run...");} while(true);