循环语句在js当中主要用于重复做一件事情。
js当中最主要的循环语句有三种,for循环,while循环和do-while循环
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(布尔测试条件) { // 语句体 }
举例
<script> // 定义循环变量 var i = 1; // 判断是有资格进入循环条件内容 while (i < 10) { console.log(i); // 设置自增, 使得 i 满足 大于 10 后退出 i++; } </script>
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 代表终止循环 ,在 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 后面的语句则不会被执行
举例
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);