do
-
while
loop
Условно выполняет оператор повторно (по крайней мере один раз).
Содержание |
Синтаксис
attr
(необязательно)
do
statement
while (
expression
);
|
|||||||||
| attr | - | (since C++11) любое количество атрибутов |
| expression | - | выражение expression |
| statement | - | инструкция statement (обычно составная инструкция) |
Объяснение
Когда управление достигает оператора do , его statement будет выполнен безусловно.
Каждый раз, когда statement завершает своё выполнение, expression будет вычисляться и контекстно преобразовываться в bool . Если результат равен true , statement будет выполнен снова.
Если цикл необходимо прервать внутри statement , в качестве завершающей инструкции можно использовать break statement .
Если текущую итерацию необходимо прервать внутри statement , можно использовать continue statement в качестве сокращения.
Примечания
В рамках гарантии прогресса C++ поведение является неопределённым , если цикл не являющийся тривиальным бесконечным циклом (начиная с C++26) без наблюдаемого поведения не завершается. Компиляторам разрешено удалять такие циклы.
Ключевые слова
Пример
#include <algorithm> #include <iostream> #include <string> int main() { int j = 2; do // составной оператор является телом цикла { j += 2; std::cout << j << ' '; } while (j < 9); std::cout << '\n'; // распространённый случай использования цикла do-while std::string s = "aba"; std::sort(s.begin(), s.end()); do std::cout << s << '\n'; // выражение является телом цикла while (std::next_permutation(s.begin(), s.end())); }
Вывод:
4 6 8 10 aab aba baa
Смотрите также
|
Документация по C
для
do-while
|