名前空間
変種
操作

do-while ループ

提供: cppreference.com
< cpp‎ | language
 
 
C++言語
一般的なトピック
フロー制御
条件付き実行文
繰り返し文 (ループ)
while
do-while
ジャンプ文
関数
関数宣言
ラムダ関数宣言
inline 指定子
例外指定(C++20未満)
noexcept 指定子(C++11)
例外
名前空間
指定子
decltype(C++11)
auto(C++11)
alignas(C++11)
記憶域期間指定子
初期化
代替表現
リテラル
ブーリアン - 整数 - 浮動小数点
文字 - 文字列 - nullptr(C++11)
ユーザ定義(C++11)
ユーティリティ
属性(C++11)
typedef 宣言
型エイリアス宣言(C++11)
キャスト
暗黙の変換 - 明示的な変換
static_cast - dynamic_cast
const_cast - reinterpret_cast
メモリ確保
クラス
クラス固有の関数特性
特別なメンバ関数
テンプレート
その他
 
ラベル
label : statement
式文
expression ;
複文
{ statement... }
選択文
if
switch
繰り返し文
while
do-while
for
範囲 for(C++11)
ジャンプ文
break
continue
return
goto
宣言文
declaration ;
try ブロック
try compound-statementhandler-sequence
トランザクショナルメモリ
synchronized, atomic_commit など(TM TS)
 

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

目次

[編集]構文

attr(オプション)dostatementwhile (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());dostd::cout<< s <<'\n';// 式文がループ本体です。while(std::next_permutation(s.begin(), s.end()));}

出力:

4 6 8 10 aab aba baa

[編集]関連項目

close