C++ do-while文:構文、実践例、ネストしたループ
do-while文とは
do-while文は、コードブロックを少なくとも1回実行し、指定された条件が真である限り繰り返す制御フロー構造です。標準的なwhile文とは異なり、条件はループ本体の後で評価されるため、条件の初期値に関わらず1回は必ず実行されます。
do-while文を使うべき場面
- ループ本体を少なくとも1回実行する必要がある場合
- イテレーション回数が実行時に決まる場合
- ユーザー入力を哨兵値が入力されるまで読み取るなど、プロンプトファーストのアプローチが必要な場合
構文
do {
// code
} while (condition);
ループ本体がwhile条件より前に来るため、コンパイラはまず本体を実行し、その後条件をチェックして再度イテレーションするかどうかを決定します。
動作の仕組み
フローチャートのステップ:
- ループを開始
- ループ本体を実行
- 条件を評価
- trueならステップ2に戻る
- falseならループを抜け、後続の文へ
例1:do-while文でのカウント
#include <iostream>
using namespace std;
int main() {
int x = 1;
do {
cout << "X is: " << x << endl;
++x;
} while (x < 5);
return 0;
}
出力:
条件x < 5がxが5に達した時点でfalseになるため、1から4まで出力されます。
例2:0が入力されるまで数値を合計
#include <iostream>
using namespace std;
int main() {
int num, sum = 0;
do {
cout << "Enter a number: ";
cin >> num;
sum += num;
} while (num != 0);
cout << "Sum is " << sum;
return 0;
}
出力:
この例では、ユーザーが0を入力するまでループが継続し、少なくとも1つの数値が処理されることが保証されます。
ネストしたdo-whileループ
do-while文を別のdo-while文の中に配置するとネスト構造になり、グリッドの出力や複合計算など多次元のイテレーションに有用です。
構文
do {
// outer body
do {
// inner body
} while (inner_condition);
} while (outer_condition);
動作の仕組み
実行は以下のように進行します:
- 外側の変数を初期化
- 外側のループ本体に入る
- 内側のループ本体に入る
- 各内側イテレーション後、
inner_conditionを評価して内側ループ継続を判断 - 内側ループ終了後、外側変数を更新し
outer_conditionを評価して外側ループ継続を判断
例
#include <iostream>
using namespace std;
int main() {
int a = 1;
do {
int b = 1;
do {
cout << a << "\n";
++b;
} while (b <= 3);
++a;
} while (a <= 3);
return 0;
}
出力:
重要なポイント
- do-while文はループ本体の少なくとも1回の実行を保証
- 実行時にイテレーション回数が決まる場合に適している
- 条件チェックは本体の後、前ではない
- ネストループで多段階イテレーションが可能だが、複雑さと可読性に注意
C言語
- 複素数を用いたAC電圧加算の解説
- C++ forループ完全ガイド:ステップバイステップでマスター
- C++ポインタをマスター:概念、例、実践的応用
- C++ char型をマスター:宣言、ASCII、変換テクニック
- C++演算子オーバーロード:コード例付き実践ガイド
- C++構造体を実例で徹底解説
- C++のstd::listをマスターする:構文、関数、実践例
- C++関数を実例で徹底解説:基本から応用まで
- C#コレクション実践チュートリアル:実例で学ぶ柔軟なデータ管理
- while文 vs do-while文:実践例で明確に比較
- Python str.count()マスター:文字と部分文字列のカウント実例集