命名空间
变体
操作

do-while 循环

来自 cppreference.com
< cpp‎ | language
 
 
C++ 语言
 
 

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

内容

[编辑] 语法

attr (可选) do statement while ( expression );
attr - (自 C++11 起) 任意数量的 属性
表达式 - 表达式
一个 表达式 - 语句

一个 语句(通常是复合语句)

[编辑] 解释

当控制权到达 do 语句时,其 statement 将无条件执行。

每次 statement 完成执行时,expression 将被求值并隐式转换为 bool。如果结果为 true,则 statement 将再次执行。

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

如果需要在 statement 中终止当前迭代,可以使用 continue 语句 作为捷径。

[编辑] 注释

作为 C++ 前进保证 的一部分,如果一个循环 不是 平凡的无限循环(自 C++26 起) 且没有 可观察行为,则其行为是 未定义 的。编译器可以删除此类循环。

[编辑] 关键字

dowhile

#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