# 循环语句

作者: 多叉树;转载须注明出处

循环语句在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 语句执行过程

Untitled

# while

while 也是一种循环结构,它经常作用于不知道要遍历多少次,只知道什么时候结束的场景。

使用while语句需要注意:在循环语句体内必须定义一个退出的条件, 否则会造成死循环

while 语句执行过程

while 循环通常先判断条件表达式,然后再决定是否执行循环语句体中的内容

Untitled

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);