◐ Shell
clean mode source ↗

do-while ループ - cppreference.com

提供: cppreference.com

expression が false になるまで、 statement を繰り返し実行します。 テストは繰り返しの各回の後に行われます。

構文

attr(オプション) do statement while ( expression ) ;
attr(C++11) - 任意の個数の属性
expression - bool に文脈的に変換可能な任意の。 この式は繰り返しの各回の後に評価され、 false になった場合、ループは終了します。
statement - 任意の。 一般的には複文であり、ループの本体になります。

説明

statement は、たとえ expression が常に false であっても、少なくとも1回は必ず実行されます。 そのような場合に実行して欲しくない場合は、 while または for を使用できます。

ループの実行をどこかの点で終了する必要がある場合は、 break 文を終了文として使用することができます。

ループの実行をループ本体の終わりから継続する必要がある場合は、 continue 文をショートカットとして使用することができます。

ノート

C++ の前方進行保証の一部として、観察可能な動作を持たない (入出力関数を呼んだり、 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()));
}

出力:

関連項目