## 概述

continue 语句结束当前（或标签）的循环语句的本次迭代，并继续执行循环的下一次迭代。

## 语法

    continue [ label ];

`label`
  标识标号关联的语句

## 描述

与 `break` 语句的区别在于， continue 并不会终止循环的迭代，而是：

- 在 `while` 循环中，控制流跳转回条件判断；

- 在 `for` 循环中，控制流跳转到更新语句。

`continue` 语句可以包含一个可选的标号以控制程序跳转到指定循环的下一次迭代，而非当前循环。此时要求 `continue` 语句在对应的循环内部。

## 示例

### 例子：在 `while` 语句中使用 `continue`

下述例子展示了 `while` 循环中 `continue` 语句的使用。当循环到 `i` 的值为 3 时，执行 continue 。 n 的值在几次迭代后分别为 1, 3, 7 和 12 ．

    i = 0;
    n = 0;
    while (i < 5) {
       i++;
       if (i === 3) {
          continue;
       }
       n += i;
    }

### 例子：使用带标号的 `continue`

在下面的例子中，被标记为 `checkiandj` 的语句包含一个被标记为 `checkj` 的语句。当遇到`continue` 语句时，程序回到 `checkj` 语句的开始继续执行。每次遇到 `continue` 时，再次执行 `checkj` ，直到条件判断返回 false 。之后完成 `checkiandj` 语句剩下的部分。

但如果 `continue` 的标号被改为 `checkiandj` ，那程序将会从 `checkiandj` 语句的开始继续运行。

参考 `label` 。

    var i = 0,
        j = 8;

    checkiandj: while (i < 4) {
       console.log("i: " + i);
       i += 1;

       checkj: while (j > 4) {
          console.log("j: "+ j);
          j -= 1;
          if ((j % 2) == 0)
             continue checkj;
          console.log(j + " is odd.");
       }
       console.log("i = " + i);
       console.log("j = " + j);
    }

输出：

    "i: 0"

    // start checkj
    "j: 8"
    "7 is odd."
    "j: 7"
    "j: 6"
    "5 is odd."
    "j: 5"
    // end checkj

    "i = 1"
    "j = 4"

    "i: 1"
    "i = 2"
    "j = 4"

    "i: 2"
    "i = 3"
    "j = 4"

    "i: 3"
    "i = 4"
    "j = 4"

## 规范

Specification | Status | Comment
--- | --- | ---
ECMAScript 1st Edition | Standard | Initial definition. Unlabeled version.
ECMAScript 3rd Edition | Standard | Labeled version added.
ECMAScript 5.1 (ECMA-262) Continue statement | Standard |
ECMAScript 2015 (6th Edition, ECMA-262) Continue statement | Standard |

## 浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

- Desktop
- Mobile

Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari
--- | --- | --- | --- | --- | ---
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes)

Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile
--- | --- | --- | --- | --- | --- | ---
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes)

## See also

- `break`
- `label`