Spec-Zone.ru › C++

do-while цикл

Условно выполняет оператор повторно (как минимум один раз).

Синтаксис

attr (необязательно) do statement while ( expression );
attr - (начиная с C++11) любое количество атрибутов
expression - выражение
statement - оператор (обычно составной оператор)

Пояснение

Когда управление достигает оператора do, его statement выполняется безусловно.

Каждый раз после завершения выполнения statement вычисляется expression и преобразуется в bool в контекстном преобразовании. Если результат — true, statement выполняется снова.

Если требуется завершить цикл внутри statement, в качестве оператора завершения можно использовать оператор break.

Если требуется завершить текущую итерацию внутри statement, в качестве сокращённого способа можно использовать оператор continue.

Примечания

В рамках гарантии прогресса C++ поведение является неопределённым, если цикл, который не является тривиальным бесконечным циклом(начиная с C++26) без наблюдаемого поведения не завершается. Компиляторам разрешается удалять такие циклы.

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

do, while

Пример

#include <algorithm>
#include <iostream>
#include <string>

int main()
{
    int j = 2;
    do // compound statement is the loop body
    {
        j += 2;
        std::cout << j << ' ';
    }
    while (j < 9);
    std::cout << '\n';
    
    // common situation where do-while loop is used
    std::string s = "aba";
    std::sort(s.begin(), s.end());
    
    do std::cout << s << '\n'; // expression statement is the loop body
    while (std::next_permutation(s.begin(), s.end()));
}

Вывод:

4 6 8 10
aab
aba
baa

См. также

Документация по C для do-while

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/language/do

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API