Цикл 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-whilestd::string s ="aba";std::sort(s.begin(), s.end());dostd::cout<< s <<'\n';// выражение оператор является телом циклаwhile(std::next_permutation(s.begin(), s.end()));}
Вывод:
4 6 8 10 aab aba baa
[править]Смотрите также
Документация C по do-while |