はじめに
Javaでプログラムを書くとき、避けて通れないのが「while文」。
え、ただの繰り返し処理でしょ?
……と思ったそこのトレーナー!
実はwhile文って、「いつ終わるかは条件次第」 という特性があって、
“ゲームの入力待ち“や“成功するまで挑戦”みたいな処理とすごく相性がいいんだ。
この記事では、while文の基本構文から、代表的な書き方を、
ピカチュウと一緒にわかりやすく紹介していくよ!
🎓 while文の基本構文
while (条件) {
// 繰り返したい処理
// 必要ならここで状態更新(例: i++ やフラグ変更)
}
-
条件: ループの“入口番人”。最初に判定。
true
なら入場、false
なら即終了。 - 本体: 1回分の処理。
- 更新: 置き場所は自由。だからこそ「どこで更新するか」を決めておくのがコツ!
流れは 条件判定 → 本体 →(必要なら)更新 → 条件判定 → … → 終了 の順!
🔢 代表的なパターン
パターン | 書き方・断片 | 説明 |
---|---|---|
条件先行 (基本形) |
while (ready) { … } |
条件が真の間だけ回す基本の形 |
カウンタで回す |
int i=0; while (i<n) { …; i++; }
|
for相当をwhileで書くとき |
フラグで抜ける | while (!caught && balls>0) { … } |
複数条件で終了をコントロール |
初期化/更新を 外管理 |
int i=0; while (i<5) { …; i++; }
|
変数寿命を外に出したいとき |
外部読み出し | while (rs.next()) { … } |
JDBC/ストリームの逐次取得に相性◎ |
⚡ ピカチュウ例:捕獲チャレンジ(成功するまで)
import java.util.Random;
public class CatchLoop {
public static void main(String[] args) {
int balls = 10; // モンスターボール所持数
double successProb = 0.25; // 25%で捕獲成功(デモ用)
Random rnd = new Random(); // 例: new Random(0) で固定すると再現しやすい
boolean caught = false;
while (balls > 0 && !caught) { // ボールがあり、まだ捕まえていない間は続ける
balls--; // 1投
if (rnd.nextDouble() < successProb) {
caught = true;
System.out.println("ゲットだぜ!");
} else {
System.out.println("逃げられた… 残りボール: " + balls);
}
}
if (!caught) {
System.out.println("ボールがなくなった…また挑戦しよう。");
}
}
}
🪄 次回予告
次は do-while。メニュー表示みたいに「最低1回は動かしたい」処理を紹介するよ!
ピッピカチュウ!!
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
https://qiita.com/hitomin_poke/items/2441aa4f50ae7d482ab2
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!