では、実務での while と do...while の使い分けを簡単に判断できるフローチャートを作りました。
テキストベースでわかりやすく整理します。
while vs do…while 選び分けチャート
┌──────────────┐
│ ループ処理を行いたい? │
└─────┬────────┘
│
▼
┌─────────────────────┐
│ 処理を**最低1回は実行**する必要がある? │
└───────┬─────────────┘
Yes │ │ No
▼ ▼
┌───────────┐ ┌───────────┐
│ do...while 文を使う │ │ while 文を使う │
└─────┬─────┘ └────┬──────┘
│ │
▼ ▼
┌────────────────┐ ┌─────────────────┐
│ ループ本体の処理を先に実行後に │ │ 条件式を先に評価して、trueなら │
│ 条件式を評価 │ │ ループ本体を繰り返す │
└────────────────┘ └─────────────────┘
チャートの解説(実務視点)
- 処理を必ず1回は実行する必要がある場合
- 例:ユーザー入力、API呼び出し、初期化処理
→do...whileが向いている。
- 例:ユーザー入力、API呼び出し、初期化処理
- 条件を最初に確認できる場合
- 例:カウンタが最大値に達しているか、ファイル末尾かどうか
→while文が向いている。
- 例:カウンタが最大値に達しているか、ファイル末尾かどうか
- ポイント
do...whileは「先に処理 → 後で条件判定」whileは「条件判定 → 条件がtrueなら処理」
実務コード例で比較
while 文
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
Java- 条件チェックが先 → i が 5 以上ならループしない。
do…while 文
int i = 5;
do {
System.out.println(i);
i++;
} while (i < 5);
Java- 処理は1回実行される → 出力される(5 が出る)
- 条件判定後、再実行しない → ループ終了。
実務で覚えておくべきルール
| 項目 | while | do…while |
|---|---|---|
| 条件判定 | 先 | 後 |
| 最低1回の実行 | × | ○ |
| ループ回数が0回の可能性 | OK | NG(必ず1回は実行される) |
| ユースケース例 | ファイル末尾チェック、カウンタ制御 | ユーザー入力、APIリトライ、初期処理 |
💡 実務のコツ
- 「最低1回実行かどうか」を判断基準に選ぶ
- 無限ループを避けるために、変数更新や終了条件を必ずループ内で管理
- 再試行処理や入力検証は
do...whileが自然
