Namespaces
Variants

continue statement

From cppreference.net

Вызывает пропуск оставшейся части тела объемлющего цикла for , while или do-while .

Используется, когда неудобно игнорировать оставшуюся часть цикла с помощью условных операторов.

Содержание

Синтаксис

attr-spec-seq (необязательно) continue ;
attr-spec-seq - (C23) необязательный список атрибутов , применяемых к оператору continue

Объяснение

Оператор continue вызывает переход, как если бы с помощью goto , к концу тела цикла (он может появляться только в теле циклов for , while и do-while ).

Для цикла while он действует как

while (/* ... */) {
   // ... 
   continue; // действует как goto contin;
   // ... 
   contin:;
}

Для цикла do-while он действует как:

do {
    // ... 
    continue; // действует как goto contin;
    // ... 
    contin:;
} while (/* ... */);

Для цикла for он действует следующим образом:

for (/* ... */) {
    // ... 
    continue; // действует как goto contin;
    // ... 
    contin:;
}

Ключевые слова

continue

Пример

#include <stdio.h>
int main(void) 
{
    for (int i = 0; i < 10; i++) {
        if (i != 5) continue;
        printf("%d ", i);             // этот оператор пропускается каждый раз, когда i != 5
    }
    printf("\n");
    for (int j = 0; j < 2; j++) {
        for (int k = 0; k < 5; k++) { // только этот цикл затрагивается оператором continue
            if (k == 3) continue;
            printf("%d%d ", j, k);    // этот оператор пропускается каждый раз, когда k == 3
        }
    }
}

Вывод:

5
00 01 02 04 10 11 12 14

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
  • 6.8.6.2 Оператор continue (стр: 111)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 6.8.6.2 Оператор continue (стр: 153)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 6.8.6.2 Оператор continue (стр: 138)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
  • 3.6.6.2 Оператор continue

Смотрите также

Документация C++ для continue statement