はじめに
do-while 文は「本体を先に1回実行してから 条件をチェックする」ループ。
え、whileと何が違うの?
……と思ったトレーナーは要チェック!!
メニュー表示や「もう一度やりますか?」の確認みたいに、
最低1回は必ず動かしたい処理と相性バツグンなんだ。
この記事では、do-while文の基本構文から、代表的な書き方を、
ピカチュウと一緒にわかりやすく紹介していくよ!
🎓 do-whileの基本構文
do {
// 1回分の処理(ここは必ず実行される)
} while (条件);
- 実行の順番: 「本体 → 条件判定 →(条件がtrueなら)本体 → …」
- 特徴: 最初の1周は無条件で走るので、表示や初期化を“まず1回”やってから判断できる。
-
注意:
while (条件)の後ろにセミコロンが必要(忘れるとコンパイルエラー)。
🔢 代表的なパターン
| パターン | 断片コード例 | 説明 |
|---|---|---|
| 確認ダイアログ |
do { … } <br>while (ans.equals("y"));
|
「もう一度やる?」に最適 |
| メニュー選択ループ |
do { show(); read(); } <br>while (choice != 9);
|
"9で終了" など終端を決めて回す |
| 入力バリデーション <br>(再入力) |
do { read(); } <br> while (!valid(input));
|
1回は聞いてから判定 |
| 最低1回は初期化を<br>実行 |
do { init(); } <br> while (retry);
|
初期化→結果で再試行 |
| 通信/処理のリトライ |
do { tryOnce(); } <br>while (!ok && retryLeft>0);
|
1回目のトライを保証 |
⚡ ピカチュウ例:ポケモンセンター「もう一度回復しますか?」
import java.util.Scanner;
public class PokemonCenter {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // デモではcloseしない(他入力で使う可能性があるため)
String ans;
do {
heal();
System.out.print("もう一度回復しますか?(y/n): ");
ans = sc.nextLine().trim().toLowerCase();
} while (ans.equals("y")); // ← y のときだけもう一度!
System.out.println("いってらっしゃい!");
}
static void heal() {
System.out.println("ポケモンは元気になった!");
}
}
🪄 次回予告
次は 無限ループと制御。while(true) の正しい使い方、break/continue、
そして多重ループを一気に抜けるラベル付き制御までまとめていくよ!
ピッピカチュウ!!
あとがき
ここまで読んでくれて、本当にありがとう。
「do-whileって意外と便利!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「ここ表現ちがうかも?」
「次は○○をやってほしい!」などなど、
気軽にコメントしてね!