Цикл do-while
Повторно выполняет оператор, пока значение выражения не станет ложным. Проверка проводится после каждой итерации.
Синтаксис
атрибуты (необязательно) do оператор while ( выражение ) ;
|
|||||||||
| атрибуты | — | (начиная с C++11) любое количество атрибутов |
| выражение | — | любое выражение, которое контекстно преобразуется в bool. Это выражение вычисляется после каждой итерации, и если оно возвращает false, цикл завершается.
|
| оператор | — | любой оператор, обычно составной, который является телом цикла |
Объяснение
оператор всегда выполняется хотя бы один раз, даже если выражение всегда даёт false. Если в этом случае он не должен выполняться, можно использовать цикл while или for.
Если в какой-то момент выполнение цикла необходимо прервать, в качестве завершающего оператора можно использовать оператор break.
Если выполнение цикла необходимо продолжить в конце тела цикла, в качестве сокращения можно использовать оператор continue.
Примечание
Как часть гарантии продвижения вперёд C++, поведение не определено, если цикл, который не имеет наблюдаемого поведения (не выполняет вызовы функций Ввода/Вывода, не обращается к volatile объектам или не выполняет атомарные операции или операции синхронизации), не завершается. Компиляторам разрешено удалять такие циклы.
Ключевые слова
Пример
#include <iostream>
#include <algorithm>
#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
|