Оператор continue
Принуждает пропустить оставшуюся часть тела цикла for, while или do-while.
Используется, когда иным образом неудобно игнорировать оставшуюся часть цикла с помощью условных операторов.
Синтаксис
attr-spec-seq(необязательно) continue ; |
| attr-spec-seq | - | (C23)необязательный список атрибутов, применяемых к оператору continue |
Объяснение
Оператор continue вызывает переход, как если бы он был реализован с помощью оператора goto, к концу тела цикла (он может быть использован только внутри тела циклов for, while и do-while).
Для цикла while он действует как
while (/* ... */) {
// ...
continue; // acts as goto contin;
// ...
contin:;
}Для цикла do-while он действует как:
do {
// ...
continue; // acts as goto contin;
// ...
contin:;
} while (/* ... */);Для цикла for он действует как:
for (/* ... */) {
// ...
continue; // acts as goto contin;
// ...
contin:;
}Ключевые слова
Пример
#include <stdio.h>
int main(void)
{
for (int i = 0; i < 10; i++) {
if (i != 5) continue;
printf("%d ", i); // this statement is skipped each time i != 5
}
printf("\n");
for (int j = 0; j < 2; j++) {
for (int k = 0; k < 5; k++) { // only this loop is affected by continue
if (k == 3) continue;
printf("%d%d ", j, k); // this statement is skipped each time 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 оператора |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/language/continue