do-while 循环

来自cppreference.com
< cpp‎ | language


 
 
C++ 语言
 
 

有条件地重复执行某条语句(至少一次)。

语法

属性 (可选) do 语句 while ( 表达式 );
属性 - (C++11 起) 任意数量的属性
表达式 - 表达式
语句 - 任意语句(典型情况下是复合语句)

解释

当控制抵达 do 语句时,会无条件执行它的语句

每次语句 执行完成时,就会求值表达式 并将它按语境转换到 bool。如果结果是 true,那么就会重新执行语句

如果需要在语句 中结束循环,那么可以使用 break 语句作为终止语句。

如果需要在语句 中结束当前迭代,那么可以使用 continue 语句作为快捷方式。

注解

作为 C++ 向前进展保证的一部分,如果平凡的无限循环以外的 (C++26 起)没有可观察行为的循环不会终止,那么它的行为未定义。编译器可以移除这种循环。

关键词

do, while

示例

#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

参阅