do
-while
循环
来自 cppreference.com
有条件地重复执行语句(至少执行一次)。
内容 |
[编辑] 语法
attr (可选) do statement while ( expression ); |
|||||||||
attr | - | (自 C++11 起) 任意数量的 属性 |
表达式 | - | 表达式 |
一个 表达式 | - | 语句 |
一个 语句(通常是复合语句)
[编辑] 解释
当控制权到达 do 语句时,其 statement 将无条件执行。
每次 statement 完成执行时,expression 将被求值并隐式转换为 bool。如果结果为 true,则 statement 将再次执行。
如果需要在 statement 中终止循环,可以使用 break 语句 作为终止语句。
如果需要在 statement 中终止当前迭代,可以使用 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
输出
[编辑] 另请参阅
|