while文 vs do-while文:実践例で明確に比較
ループとは
ループとは、指定した条件が偽になるまで、一連の文を繰り返し実行する制御構造です。ループは「ループ本体」と「制御文」の2部分で構成されます。制御文は、ループ本体を実行し続ける条件を定義します。ループの目的は、同じコードを複数回実行することです。
while文とは
while文は最も基本的なループ構造で、「事前判定型(エントリ制御)」ループです。while文では、ループ本体を実行する前に条件を評価します。条件が真の場合のみ、ループ本体が実行されます。
ループ本体の実行後、制御は先頭に戻り、再び条件がチェックされます。真であれば同じ処理が繰り返され、偽になればループを抜けます。
while文では、最初から条件が偽であれば、ループ本体は一度も実行されません。
do-while文とは
do-while文はwhile文と似ていますが、条件判定がループ本体の実行後に行われます。「事後判定型(イグジット制御)」ループとも呼ばれます。
do-while文では、ループ本体が最低1回は必ず実行されます。本体実行後に条件を判定し、真であれば再度本体を実行、偽であればループを抜けます。
主な違い:
- while文は条件を先に判定してから文を実行、do-while文は文を最低1回実行してから条件を判定
- while文はエントリ制御、do-while文はイグジット制御
- while文の条件末尾にセミコロンは不要、do-while文では必要
- while文は条件が偽なら0回実行、do-while文は最低1回実行
- while文はカウンタ変数をループ前に初期化、do-while文は前後どちらでも可能
while文の構文
while (条件) { 文; }
while文では、評価する条件を記述します。波括弧内が実行されるコードです。
do-while文の構文
do { 文 } while (式);
do-while文では、最初に波括弧内の実行コードを記述し、その後で評価する式(Java、C、C++等)を指定します。
while文の動作フロー

フローチャートの説明:
ステップ1) while文開始
ステップ2) 条件式を評価
ステップ3) 条件が真ならループ本体を実行
ステップ4) 条件が偽ならループ後の処理を実行
do-while文の動作フロー

フローチャートの説明:
ステップ1) do-while文開始
ステップ2) ループ本体を実行
ステップ3) 条件式を評価
ステップ4) 条件が真ならループ本体を再実行
ステップ5) 条件が偽ならループ後の文を実行
ステップ6) ループ後の文を実行
C言語でのwhile文例
以下のプログラムはwhile文で1から4まで出力します:
#include <stdio.h>
#include <conio.h>
int main() {
int num = 1; // 変数を1で初期化
while (num <= 4) { // 条件:numが4以下
printf("%d\n", num);
num++; // インクリメント
}
return 0;
}
出力:
1 2 3 4
変数numを1で初期化し、4まで出力します。条件num <= 4のもと、ループ本体で出力とインクリメントを繰り返し、numが4になれば終了します。
C言語でのdo-while文例
以下はdo-while文で2の段(掛け算表)を出力する例です:
#include <stdio.h>
#include <conio.h>
int main() {
int num = 1;
do {
printf("%d\n", 2 * num);
num++;
} while (num <= 4);
return 0;
}
出力:
2 4 6 8
最初にnum=1で初期化し、do-whileループに入ります。本体で2*numを出力後インクリメント。最初は2*1=2が出力され、numが4になるまで繰り返されます。
while文 vs do-while文

重要な違いをまとめます:
| while文 | do-while文 |
|---|---|
| 条件を先に判定してから文を実行 | 文を最低1回実行してから条件を判定 |
| カウンタ変数はループ前に初期化 | カウンタ変数はループ前後どちらでも初期化可能 |
| エントリ制御ループ | イグジット制御ループ |
| 条件末尾にセミコロン不要 | 条件末尾にセミコロン必要 |
| 単一ステートメントでも波括弧が必要な場合あり | 波括弧は常に必要 |
| 条件はループの先頭に記述 | 条件はブロック実行後に記述 |
| 条件が偽なら0回実行 | 最低1回は実行 |
一般的な記法:while (条件) { 文; } | 一般的な記法:do { 文; } while (条件); |
どちらを選ぶべきか
最初の反復が必須でない場合、または反復回数が不明な場合はwhile文を使用します。
最低1回は必ず実行する必要がある場合(メニュー駆動型プログラムでユーザー入力に基づく終了条件等)はdo-while文が適しています。
C言語
- DCモーターとACモーターの違い:主要な差異と購入ガイド
- C# の式、文、ブロック:実践例で徹底理解
- C# while 文と do-while 文をマスターする:構文、例、ベストプラクティス
- C++ while/do-whileループ完全ガイド:繰り返し処理をマスターする
- C言語while/do-whileループ完全マスター:実践例付き
- C++ do-while文:構文、実践例、ネストしたループ
- C++ structとclassの違い:構文、特徴、使い分けのベストプラクティス
- C#継承と多態性マスター:実践コード例で学ぶオブジェクト指向の核心
- C# Queue完全ガイド:Enqueue、Dequeue、FIFO操作の実例解説
- while文 vs do-while文:実践例で明確に比較
- Java while & do-whileループをマスター:ステップバイステップチュートリアル