do-while ループ
提供: cppreference.com
expression が false になるまで、 statement を繰り返し実行します。 テストは繰り返しの各回の後に行われます。
目次 |
[編集]構文
attr(オプション)do statementwhile ( expression) ; | |||||||||
attr(C++11) | - | 任意の個数の属性。 |
expression | - | bool に文脈的に変換可能な任意の式。 この式は繰り返しの各回の後に評価され、 false になった場合、ループは終了します。 |
statement | - | 任意の文。 一般的には複文であり、ループの本体になります。 |
[編集]説明
statement は、たとえ expression が常に false であっても、少なくとも1回は必ず実行されます。 そのような場合に実行して欲しくない場合は、 while または for を使用できます。
ループの実行をどこかの点で終了する必要がある場合は、 break 文を終了文として使用することができます。
ループの実行をループ本体の終わりから継続する必要がある場合は、 continue 文をショートカットとして使用することができます。
[編集]ノート
C++ の前方進行保証の一部として、観察可能な動作を持たない (入出力関数を呼んだり、 volatile オブジェクトにアクセスしたり、アトミック操作や同期操作行ったりしない) ループが終了しない場合、動作は未定義です。 コンパイラはそのようなループを削除することが許されています。
[編集]キーワード
[編集]例
Run this code
#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());dostd::cout<< s <<'\n';// 式文がループ本体です。while(std::next_permutation(s.begin(), s.end()));}
出力:
4 6 8 10 aab aba baa
[編集]関連項目
do-while の C言語リファレンス |