Namespaces
Variants

do - while loop

From cppreference.net
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements (loops)
while
do-while
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications ( until C++17* )
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
Miscellaneous

Exécute conditionnellement une instruction de manière répétée (au moins une fois).

Table des matières

Syntaxe

attr  (facultatif) do instruction while ( expression );
attr - (depuis C++11) n'importe quel nombre d' attributs
expression - une expression
statement - une instruction (généralement une instruction composée)

Explication

Lorsque le contrôle atteint une instruction do , sa instruction sera exécutée inconditionnellement.

Chaque fois que statement termine son exécution, expression sera évaluée et convertie contextuellement en bool . Si le résultat est true , statement sera exécuté à nouveau.

Si la boucle doit être terminée au sein de statement , une break statement peut être utilisée comme instruction de terminaison.

Si l'itération actuelle doit être terminée au sein de statement , une continue statement peut être utilisée comme raccourci.

Notes

Dans le cadre de la garantie de progression du C++, le comportement est indéfini si une boucle qui n'est pas une boucle infinie triviale (depuis C++26) sans comportement observable ne se termine pas. Les compilateurs sont autorisés à supprimer de telles boucles.

Mots-clés

do , while

Exemple

#include <algorithm>
#include <iostream>
#include <string>
int main()
{
    int j = 2;
    do // l'instruction composée est le corps de la boucle
    {
        j += 2;
        std::cout << j << ' ';
    }
    while (j < 9);
    std::cout << '\n';
    // situation courante où la boucle do-while est utilisée
    std::string s = "aba";
    std::sort(s.begin(), s.end());
    do std::cout << s << '\n'; // l'instruction d'expression est le corps de la boucle
    while (std::next_permutation(s.begin(), s.end()));
}

Sortie :

4 6 8 10
aab
aba
baa

Voir aussi

Documentation C pour do-while