do-while 循环

出自cppreference.com


 
 
C++ 語言
 
 

有條件地重複執行某條語句(至少一次)。

語法

屬性 (可選) 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 // 循环体是复合语句
    {
        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 文檔