命名空间
变体
操作

do-while 循环

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

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

目录

[编辑] 语法

attr (可选) 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 // 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