do-while 循环
来自cppreference.com
重复执行 语句,直到 表达式 的值变成 false
。每次重复之后进行检测。
语法
属性(可选) do 语句 while ( 表达式 ) ;
|
|||||||||
属性 | - | (C++11 起) 任意数量的属性 |
表达式 | - | 能按语境转换成 bool 的任意表达式。每次重复之后求值表此表达式,且在它产生 false 时退出循环。
|
语句 | - | 任意语句,通常是复合语句,它是循环体 |
解释
始终至少执行一次 语句,即使 表达式 始终产生 false
。如果希望这种情况下不应执行,那么可以用 while 或 for 循环替代。
如果循环的执行必须在某点终止,那么可以使用 break 语句作为终止语句。
如果循环需要在循环体结尾继续,那么可以使用 continue 语句作为快捷方式。
注意
作为 C++ 向前进展保证的一部分,如果没有可观察行为(不调用 I/O 函数,访问 volatile 对象,或进行原子或同步操作)的循环不会终止,那么它的行为未定义。编译器可以移除这种循环。
关键词
示例
运行此代码
#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