do-while 循环
出自cppreference.com
有條件地重複執行某條語句(至少一次)。
語法
屬性 (可選) do 語句 while ( 表達式 );
|
|||||||||
| 屬性 | - | (C++11 起) 任意數量的屬性 |
| 表達式 | - | 表達式 |
| 語句 | - | 任意語句(典型情況下是複合語句) |
解釋
當控制抵達 do 語句時,會無條件執行它的語句。
每次語句 執行完成時,就會求值表達式 並將它按語境轉換到 bool。如果結果是 true,那麼就會重新執行語句。
如果需要在語句 中結束循環,那麼可以使用 break 語句作為終止語句。
如果需要在語句 中結束當前迭代,那麼可以使用 continue 語句作為快捷方式。
註解
作為 C++ 向前進展保證的一部分,如果平凡的無限循環以外的(C++26 起)沒有可觀察行為的循環不會終止,那麼它的行為未定義。編譯器可以移除這種循環。
關鍵詞
示例
運行此代碼
#include <algorithm>
#include <iostream>
#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-while 的 C 文檔
|