do-while 循环

来自cppreference.com
< cpp‎ | language

重复执行 语句 ,直至 表达式 的值变为 false 。检测发生于每次迭代后。

目录

[编辑] 语法

属性(可选) do 语句 while ( 表达式 ) ;
属性(C++11) - 任何数量的属性
表达式 - 任何能按语境转换为 bool 的表达式。每次迭代后求值表此表达式,而若它产出 false ,则退出循环。
语句 - 任何语句,典型地为复合语句,它是循环体

[编辑] 解释

始终至少执行一次 语句 ,即使 表达式 始终产出 false 。若该情况下不应执行,则可用 whilefor 循环替代。

若循环的执行必须在某点终止,则能以 break 语句为终止语句。

若循环需要在循环体结尾继续,则能以 continue 语句为快捷方式。

[编辑] 注意

作为 C++ 向前进展保证的一部分,若循环无可观察行为(不调用 I/O 函数、访问 volatile 对象,或进行原子或同步操作)且不终止,则行为未定义。允许编译器移除这种循环。

[编辑] 关键词

do, while

[编辑] 示例

#include <iostream>
#include <algorithm>
#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

[编辑] 参阅

do-whileC 文档