continue 语句

来自cppreference.com


 
 
C++ 语言
 
 

终止当前迭代。

语法

属性 (可选) continue ;
属性 - (C++11 起) 任意数量的属性

解释

continue 语句必须被以下任意语句包围

(C++26 起)

对于迭代语句

执行 continue 语句时,如果包围该语句的此类语句中最内层的语句是迭代语句,那么控制会转移到该迭代语句的语句(即循环体)的末尾。

while (/* ... */)
{
    /* 会执行的语句 */
    continue;
    /* 会跳过的语句 */
}

do
{
    /* 会执行的语句 */
    continue;
    /* 会跳过的语句 */
} while (/* ... */)

for (/* ... */)
{
    /* 会执行的语句 */
    continue;
    /* 会跳过的语句 */
}

对于展开语句

执行 continue 语句时,如果包围该语句的此类语句中最内层的语句是展开语句,那么控制会转移到该展开语句的当前展开项的复合语句 的末尾。

template for (/* ... */)
{
    if (/* 当前是第 N 项 */)
        continue;
    /* 只会在第 N 项跳过的语句 */
}
(C++26 起)

关键词

continue

示例

#include <iostream>

int main() 
{
    for (int i = 0; i < 10; i++)
    {
        if (i != 5)
            continue;
        std::cout << i << " ";       // 每次 i != 5 时跳过此语句
    }
    std::cout << '\n';
    
    for (int j = 0; j < 2; j++)
        for (int k = 0; k < 5; ++k) // continue 只会影响此循环
        {
            if (k == 3)
                continue;
            // 每次 k == 3 时跳过此语句
            std::cout << '(' << j << ',' << k << ") ";
        }
    std::cout << '\n';
}

输出:

5
(0,0) (0,1) (0,2) (0,4) (1,0) (1,1) (1,2) (1,4)

参阅

continue 的 C 文档